首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
新人请教如何触发on里面的回调函数
class JobResumeController { public $enableCsrfValidation = false; public function actionDownexcel() { $config = [ 'worker_num ' => 5, 'task_worker_num' => 2, 'dispatch_mode' => 2, 'daemonize' => 0, 'max_request' => 10000, 'log_file' => 'swoole.log' ]; $serv = new \swoole_server('127.0.0.1', 9501); $serv->set($config); //var_export($serv); $serv->on('Connect', function ($serv, $fd){ echo "Client:Connect.\n"; }); $serv->on('receive', [$this,'onReceive']); $serv->on('task', [$this,'onTask']); //$serv->on('WorkerStart',[$this,'onTask']); // $serv->on("error", function($cli){ // echo "Connect failed\n"; // }); $serv->on("close", function($cli){ echo "Connection close\n"; }); $serv->on('finish', array($this, 'onFinish')); //$obj = $this; $serv->start(); // $serv->on('WorkerStart',[$this,'onTask']); } public function onTask($serv, $task_id, $from_id) { echo "xudong zai riben"; file_put_contents('sssssssss.txt','许东'); } public function onReceive($serv, $fd, $from_id, $data) { echo "string"; $result = $serv->taskwait($data); if (false !== $result) { $result=json_decode($result,true); if ('ok' === $result['status']) { $serv->send($fd, json_encode($result['data']) . "\n"); } else { $serv->send($fd, $result); } return ; } else { $serv->send($fd, "Error. Task timeout\n"); } $task_id = $serv->task($data); } public function onFinish($serv, $task_id, $data) { echo "任务完成";//taskwait 不触发这个函数。。 } } $sss = new JobResumeController(); $sss->actionDownexcel(); 这是全部源码,执行后发现回调函数都不知心,这是为何?
发布于6年前 · 2 次浏览 · 来自
提问
s
suoniao
class JobResumeController { public $enableCsrfValidation = false; public function actionDownexcel() { $config = [ 'worker_num ' => 5, 'task_worker_num' => 2, 'dispatch_mode' => 2, 'daemonize' => 0, 'max_request' => 10000, 'log_file' => 'swoole.log' ]; $serv = new \swoole_server('127.0.0.1', 9501); $serv->set($config); //var_export($serv); $serv->on('Connect', function ($serv, $fd){ echo "Client:Connect.\n"; }); $serv->on('receive', [$this,'onReceive']); $serv->on('task', [$this,'onTask']); //$serv->on('WorkerStart',[$this,'onTask']); // $serv->on("error", function($cli){ // echo "Connect failed\n"; // }); $serv->on("close", function($cli){ echo "Connection close\n"; }); $serv->on('finish', array($this, 'onFinish')); //$obj = $this; $serv->start(); // $serv->on('WorkerStart',[$this,'onTask']); } public function onTask($serv, $task_id, $from_id) { echo "xudong zai riben"; file_put_contents('sssssssss.txt','许东'); } public function onReceive($serv, $fd, $from_id, $data) { echo "string"; $result = $serv->taskwait($data); if (false !== $result) { $result=json_decode($result,true); if ('ok' === $result['status']) { $serv->send($fd, json_encode($result['data']) . "\n"); } else { $serv->send($fd, $result); } return ; } else { $serv->send($fd, "Error. Task timeout\n"); } $task_id = $serv->task($data); } public function onFinish($serv, $task_id, $data) { echo "任务完成";//taskwait 不触发这个函数。。 } } $sss = new JobResumeController(); $sss->actionDownexcel(); 这是全部源码,执行后发现回调函数都不知心,这是为何?
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2019-11-07
m
marlon
hp环境是7.1
赞
0
回复
2019-11-07
卡
卡尔
恳请大神赐教
赞
0
回复
2019-11-08
k
king_cjl
https://wiki.swoole.com/wiki/page/136.html task进程的onTask事件中没有调用finish方法或者return结果,worker进程不会触发onFinish
赞
0
回复