首先服务器安装crontab
yum install -y vixie-cron
yum install crontabs
在EasySwoole全局的mainServerCreate事件中进行进程注册

需要定义一个定时任务类继承EasySwoole\EasySwoole\Crontab\AbstractCronTask。
/**
* Created by PhpStorm.
* User: zdh
* Date: 2021/10/26
* Time: 5:39 PM
*/
namespace App\Crontab;
use EasySwoole\EasySwoole\Crontab\AbstractCronTask;
use EasySwoole\EasySwoole\Task\TaskManager;
class CustomCrontab extends AbstractCronTask
{
public static function getRule(): string
{
// 定义执行规则 根据Crontab来定义
return '*/1 * * * *';
}
public static function getTaskName(): string
{
// 定时任务的名称
return 'CustomCrontab';
}
public function run(int $taskId, int $workerIndex)
{
// 定时任务的执行逻辑
// 开发者可投递给task异步处理
TaskManager::getInstance()->async(function (){
var_dump("12313123213");
});
}
public function onException(\Throwable $throwable, int $taskId, int $workerIndex)
{
// 捕获run方法内所抛出的异常
}
}
Crontab管理
EasySwoole内置对于Crontab的命令行操作,方便开发者友好的去管理Crontab。
可执行php easyswoole crontab -h来查看具体操作。
查看所有注册的Crontab
php easyswoole crontab show
停止指定的Crontab
php easyswoole crontab stop --name=TASK_NAME
恢复指定的Crontab
php easyswoole crontab resume --name=TASK_NAME
立即跑一次指定的Crontab
php easyswoole crontab run --name=TASK_NAME