33 lines
1.1 KiB
PHP
33 lines
1.1 KiB
PHP
<?php
|
|
|
|
use Illuminate\Foundation\Inspiring;
|
|
use Illuminate\Support\Facades\Artisan;
|
|
use Illuminate\Support\Facades\Schedule;
|
|
|
|
Artisan::command('inspire', function () {
|
|
$this->comment(Inspiring::quote());
|
|
})->purpose('Display an inspiring quote');
|
|
|
|
Schedule::command('billing:process-schedules')
|
|
->dailyAt('00:05')
|
|
->timezone(config('app.timezone'))
|
|
->withoutOverlapping()
|
|
->onOneServer();
|
|
|
|
Schedule::command('notifications:prune')
|
|
->dailyAt('02:15')
|
|
->timezone(config('app.timezone'))
|
|
->withoutOverlapping()
|
|
->onOneServer();
|
|
|
|
Schedule::command('nas:check-mikrotiks')
|
|
->everyMinute()
|
|
->withoutOverlapping()
|
|
->onOneServer();
|
|
|
|
Schedule::call(function () {
|
|
\App\Models\CustomerNasAccount::query()->whereIn('status', ['active','disabled'])
|
|
->where(fn ($q) => $q->whereNull('last_reconciled_at')->orWhere('last_reconciled_at','<=',now()->subMinutes(5)))
|
|
->select('id')->chunkById(200, fn ($rows) => $rows->each(fn ($row) => \App\Jobs\ReconcileCustomerNasAccount::dispatch($row->id)));
|
|
})->everyMinute()->name('nas-reconcile-accounts')->withoutOverlapping()->onOneServer();
|