Lae/app/Console/Kernel.php

89 lines
4.1 KiB
PHP
Raw Permalink Normal View History

2022-08-12 07:56:56 +00:00
<?php
namespace App\Console;
2023-03-07 16:45:29 +00:00
use App\Jobs\Host\CancelExpiredHostJob;
use App\Jobs\Host\DeleteHostJob;
2023-03-08 00:25:52 +00:00
use App\Jobs\Host\DispatchHostCostHourlyJob;
use App\Jobs\Host\DispatchHostCostMonthlyJob;
2023-03-04 10:21:08 +00:00
use App\Jobs\Host\ScanErrorHostsJob;
use App\Jobs\Module\DispatchFetchModuleJob;
2023-01-13 14:11:56 +00:00
use App\Jobs\Module\SendModuleEarningsJob;
2023-02-28 11:31:05 +00:00
use App\Jobs\Subscription\DeleteDraftJob;
use App\Jobs\Subscription\UpdateSubscriptionStatusJob;
2023-01-13 14:11:56 +00:00
use App\Jobs\User\CheckAndChargeBalanceJob;
use App\Jobs\User\ClearTasksJob;
2023-02-19 16:57:33 +00:00
use App\Jobs\User\DeleteUnverifiedUserJob;
2023-01-13 14:11:56 +00:00
use App\Jobs\User\RollbackUserTempGroupJob;
use App\Jobs\User\SetBirthdayGroupJob;
use App\Jobs\WorkOrder\AutoCloseWorkOrderJob;
use App\Jobs\WorkOrder\PushWorkOrderJob;
2022-08-12 07:56:56 +00:00
use Illuminate\Console\Scheduling\Schedule;
2022-11-06 11:28:22 +00:00
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
2022-08-12 07:56:56 +00:00
class Kernel extends ConsoleKernel
{
/**
* Define the application's command schedule.
*/
protected function schedule(Schedule $schedule): void
2022-08-12 07:56:56 +00:00
{
2022-11-19 04:37:18 +00:00
// 清理过期的 Token
2023-02-12 18:28:06 +00:00
$schedule->command('sanctum:prune-expired --hours=24')->daily()->runInBackground()->onOneServer()->name('清理过期的 Token。');
2022-11-06 11:28:22 +00:00
2022-11-19 04:37:18 +00:00
// 扣费
2023-03-08 00:25:52 +00:00
$schedule->job(new DispatchHostCostHourlyJob(now()->minute, null))->everyMinute()->withoutOverlapping()->onOneServer()->name('部署扣费任务 (小时)');
$schedule->job(new DispatchHostCostMonthlyJob(now()->day, now()->hour, null))->hourly()->withoutOverlapping()->onOneServer()->name('部署扣费任务 (月度)');
2023-03-07 16:45:29 +00:00
$schedule->job(new CancelExpiredHostJob())->hourly()->withoutOverlapping()->onOneServer()->name('部署清理到期主机任务');
2022-11-19 04:37:18 +00:00
// 获取模块暴露的信息(服务器等,检查模块状态)
2023-02-12 18:28:06 +00:00
$schedule->job(new DispatchFetchModuleJob())->withoutOverlapping()->everyMinute()->name('获取模块暴露的信息(服务器等,检查模块状态)');
2022-11-19 04:37:18 +00:00
// 推送工单
2023-02-12 18:28:06 +00:00
$schedule->job(new PushWorkOrderJob())->everyMinute()->onOneServer()->name('推送工单');
2022-11-19 04:37:18 +00:00
// 自动关闭工单
2023-02-12 18:28:06 +00:00
$schedule->job(new AutoCloseWorkOrderJob())->everyMinute()->onOneServer()->name('自动关闭工单');
2022-08-13 08:37:17 +00:00
2022-11-19 04:37:18 +00:00
// 清理任务
2023-02-12 18:28:06 +00:00
$schedule->job(new ClearTasksJob())->weekly()->onOneServer()->name('清理大于 1 天的任务');
2022-09-03 05:22:40 +00:00
2022-11-19 04:37:18 +00:00
// 删除暂停或部署时间超过 3 天以上的主机
2023-02-12 18:28:06 +00:00
$schedule->job(new DeleteHostJob())->hourly()->onOneServer()->name('删除暂停或部署时间超过 3 天以上的主机');
2022-09-18 06:28:29 +00:00
2022-11-19 04:37:18 +00:00
// 检查主机是否存在于模块
2023-03-02 11:34:11 +00:00
// $schedule->job(new ScanAllHostsJob())->everyThirtyMinutes()->withoutOverlapping()->onOneServer()->name('检查主机是否存在于模块');
2022-11-08 09:46:00 +00:00
2023-03-04 10:21:08 +00:00
// 扫描出错的主机
$schedule->job(new ScanErrorHostsJob())->everyThirtyMinutes()->withoutOverlapping()->onOneServer()->name('扫描出错的主机');
2022-11-19 04:37:18 +00:00
// 检查未充值的订单,并充值
2023-02-12 18:28:06 +00:00
$schedule->job(new CheckAndChargeBalanceJob())->everyFiveMinutes()->onOneServer()->withoutOverlapping()->name('检查未充值的订单,并充值');
2022-11-19 04:37:18 +00:00
// 发送模块收益
2023-02-12 18:28:06 +00:00
$schedule->job(new SendModuleEarningsJob())->dailyAt('20:00')->onOneServer()->name('发送模块收益');
2022-11-19 04:37:18 +00:00
// 回滚临时用户组
2023-02-12 18:28:06 +00:00
$schedule->job(new RollbackUserTempGroupJob())->everyMinute()->onOneServer()->name('回滚临时用户组');
// 设置生日用户组
2023-02-12 18:28:06 +00:00
$schedule->job(new SetBirthdayGroupJob())->dailyAt('00:00')->onOneServer()->name('设置生日用户组');
2023-02-19 16:57:33 +00:00
// 删除注册超过 3 天未验证邮箱的用户
$schedule->job(new DeleteUnverifiedUserJob())->daily()->onOneServer()->name('删除注册超过 3 天未验证邮箱的用户');
2023-02-28 11:31:05 +00:00
// 订阅
$schedule->job(new DeleteDraftJob())->daily()->onOneServer()->name('删除超过 1 天的草稿订阅');
$schedule->job(new UpdateSubscriptionStatusJob())->everyMinute()->onOneServer()->name('更新订阅状态');
2022-11-06 11:28:22 +00:00
}
2022-09-21 05:35:09 +00:00
2023-01-05 05:10:08 +00:00
/**
* Register the commands for the application.
*/
protected function commands(): void
2022-11-06 11:28:22 +00:00
{
2023-02-12 18:28:06 +00:00
$this->load(__DIR__.'/Commands');
2022-10-31 11:50:32 +00:00
2023-01-05 05:10:08 +00:00
require base_path('routes/console.php');
2022-08-12 07:56:56 +00:00
}
}