82 lines
2.7 KiB
PHP
82 lines
2.7 KiB
PHP
<?php
|
|
|
|
namespace App\Console;
|
|
|
|
use App\Console\Commands\BusinessStore;
|
|
use App\Console\Commands\BusinessStoreOptimized;
|
|
use App\Console\Commands\CheckPaymentsAccount;
|
|
use App\Console\Commands\CheckPaymentUptime;
|
|
use App\Console\Commands\DhlUpdateTracking;
|
|
use App\Console\Commands\UserCleanup;
|
|
use App\Console\Commands\UserMakeAboOrder;
|
|
use Illuminate\Console\Scheduling\Schedule;
|
|
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
|
|
|
class Kernel extends ConsoleKernel
|
|
{
|
|
/**
|
|
* The Artisan commands provided by your application.
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $commands = [
|
|
BusinessStore::class,
|
|
BusinessStoreOptimized::class,
|
|
CheckPaymentUptime::class,
|
|
CheckPaymentsAccount::class,
|
|
UserMakeAboOrder::class,
|
|
UserCleanup::class,
|
|
DhlUpdateTracking::class,
|
|
];
|
|
|
|
/**
|
|
* Define the application's command schedule.
|
|
*
|
|
* @return void
|
|
*/
|
|
protected function schedule(Schedule $schedule)
|
|
{
|
|
// Uptime-Check: PAYONE-Erreichbarkeit alle 5 Minuten prüfen
|
|
$schedule->command('payment:check-uptime')
|
|
->everyFiveMinutes()
|
|
->withoutOverlapping()
|
|
->runInBackground();
|
|
|
|
// Job 1: Überprüft täglich um 02:00 Uhr die Zahlungskonten.
|
|
$schedule->command('payments:check-accounts')->dailyAt('02:00');
|
|
// Jobs 2, 3, 4: Die Befehle aus deinem alten Shell-Skript.
|
|
// Werden nacheinander täglich zu unterschiedlichen Zeiten ausgeführt,
|
|
// um die Serverlast zu verteilen.
|
|
$schedule->command('business:store-optimized 0 0')->dailyAt('03:00');
|
|
|
|
$schedule->command('user:cleanup')->dailyAt('03:30');
|
|
$schedule->command('user:make_abo_order')->dailyAt('04:00');
|
|
|
|
// Abo-Chart-Snapshots: vergangene Monate einfrieren (nach allen Abo-Jobs)
|
|
$schedule->command('abo:store-chart-snapshots')->dailyAt('04:30');
|
|
|
|
// Incentive: Punkteberechnung täglich nach business:store-optimized
|
|
$schedule->command('incentive:calculate')->dailyAt('05:00');
|
|
|
|
// Cleanup old log files weekly (keeps logs for 30 days)
|
|
$schedule->command('logs:cleanup --days=30')->weekly()->sundays()->at('05:00');
|
|
|
|
// DHL Tracking Update: Stündlich mit status-basierten Intervallen und Batch-API
|
|
$schedule->command('dhl:update-tracking --days=30 --send-emails')
|
|
->hourly()
|
|
->withoutOverlapping()
|
|
->runInBackground();
|
|
}
|
|
|
|
/**
|
|
* Register the commands for the application.
|
|
*
|
|
* @return void
|
|
*/
|
|
protected function commands()
|
|
{
|
|
$this->load(__DIR__.'/Commands');
|
|
|
|
require base_path('routes/console.php');
|
|
}
|
|
}
|