按照官方教程:
https://www.workerman.net/doc/workerman/components/crontab.html
将其中的代码放入一个crontab.php的文档
如果放在根目录,单独执行:
php crontab.php start
是能正常工作的
我想让它随着系统命令
php start.php restart
一起启动,该如何做呢?
感谢
------------分割线--------------
通过官方的AI,已解决:
在 app/foo 目录下创建一个新的进程文件,例如 Task.php,并在其中定义你的定时任务。例如:
<?php
namespace app\foo;
use Workerman\Crontab\Crontab;
class Task
{
public function onWorkerStart()
{
// 每秒钟执行一次
new Crontab('/1 ', function(){
echo date('Y-m-d H:i:s')."\n";
});
}
}
接下来,打开配置文件 config/process.php,并新增如下配置以注册你的定时任务进程:
return [
// 其它配置...
'foo_task' => [
'handler' => app\foo\Task::class
],
];
注意,这里放在第一级
最后,重启webman以使配置生效。请注意,定时任务不会马上执行,所有定时任务将会在下一分钟开始计时执行。
说明
通过以上步骤,你在 app/foo 目录下的定时任务进程会在webman启动时自动运行。确保你的定时任务逻辑在 onWorkerStart 方法中正确实现。