异步任务不执行,不知道为什么。
来源:7-22 播放数统计 – 高性能redis有序集合服务引入
大王今天不巡山
2019-02-28
老师您好,我在控制器中投递异步任务。返回false,看了半天没明白为什么。请求帮助!
异步任务
<?php
namespace App\Task;
use EasySwoole\EasySwoole\Swoole\Task\AbstractAsyncTask;
class Message extends AbstractAsyncTask
{
protected function run($taskData, $taskId, $fromWorkerId, $flags = null)
{
// TODO: Implement run() method.
echo "任务执行了\n";
return true;
}
protected function finish($result, $task_id)
{
// TODO: Implement finish() method.
}
}
在控制器中投递异步任务
<?php
namespace App\HttpController\Api;
use App\HttpController\Model\BannerModel;
use App\HttpController\Service\Redis;
use App\Task\Message;
use EasySwoole\EasySwoole\Swoole\Task\TaskManager;
class Banner extends Base
{
public function banner()
{
$data = (new BannerModel())->getBanner();
TaskManager::async(Message::class);
return $this->writeJson(200, $data, 'OK');
}
}
控制台没有输出。有点懵,不知道为什么异步任务不执行!我的环境如下:
swoole version 4.2.13
php version 7.2.15-0ubuntu0.18.04.1
easy swoole 3.1.15
写回答
1回答
-
houger
2019-02-28
将任务模版类实例化之后,再把实力对象传进异步任务 试试
052019-03-04
相似问题
记录日志是否用异步任务实现?
回答 1
异步任务和消息队列的使用场景
回答 1