31 lines
1.0 KiB
PHP
31 lines
1.0 KiB
PHP
<?php
|
|
namespace app\event;
|
|
use Workerman\Crontab\Crontab;
|
|
use app\model\system\Cron;
|
|
|
|
class CronTimer
|
|
{
|
|
public function handle()
|
|
{
|
|
if(!isset($_SERVER['HTTP_USER_AGENT'])){
|
|
$_SERVER['HTTP_USER_AGENT'] ='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36';
|
|
}
|
|
//自动写入文件方便检测是否启动定时任务命令
|
|
new Crontab('*/10 * * * * *', function () {
|
|
echo date('Y-m-d H:i:s') . "\n";
|
|
$cron_model = new \app\model\system\Cron();
|
|
echo $cron_model->execute();
|
|
file_put_contents(root_path() . 'runtime/.timer', time());
|
|
});
|
|
$cron = config('cron.cron');
|
|
if ($cron) {
|
|
foreach ($cron as $item) {
|
|
new Crontab($item['timer'], function () use ($item) {
|
|
echo $item['event'] . '--' . date('Y-m-d H:i:s') . "\n";
|
|
event($item['event'], []);
|
|
});
|
|
}
|
|
}
|
|
return success();
|
|
}
|
|
} |