【已解决】定时任务怎么执行指定的类中的方法(或静态方法)

lepig

问题描述

使用的组件时workerman/crontab,看手册介绍的例子是在定时任务文件中的匿名函数中编写业务处理,如果我想在一个类种的某个方法里写业务逻辑。如何写才能调用到。

为此你搜索到了哪些方案及不适用的原因

我使用new Crontab('*/1 * * * * *',call_user_func([HomeController::class,'index'])); 就启动的时候执行了一次,后面不执行了。

95 2 0
2个回答

Gin

你这样 容易阻塞 搭配httpclient 使用

$http = new HttpClient(config('app.http_option'));

new Crontab('*/1 * * * * *', function()use($http){
$http->get($api, function($response){

}, function($exception){

});

});
  • lepig 2天前

    意思是定时任务去请求自己写的一个接口是吧? 我现在用的宝塔上面的定时任务,上面有个发送get请求的,请求的地址就是我写的一个公网接口。那应该和您说的这个方式是一个意思

six

php的通用写法

new Crontab('*/1 * * * * *', [HomeController::class,'index']);
  • lepig 2天前

    谢谢。 call_user_func用多了,第一反应用了这个函数

×
🔝