首页
下载
文档
问答社区
视频
捐赠
源代码
AI 助理
赞助商
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
商业产品
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
关于Worker进程的疑惑
### 问题描述 我寻思着,Worker和Task的关联关系。 文档里有一段关于Worker的解释: ***接受由 Reactor 线程投递的请求数据包,并执行 PHP 回调函数处理数据*** ### 相关代码 **文档里的执行异步任务案例** ```php $serv->on('Receive', function($serv, $fd, $reactor_id, $data) { //投递异步任务 $task_id = $serv->task($data); echo "Dispatch AsyncTask: id={$task_id}\n"; }); $serv->on('Task', function ($serv, $task_id, $reactor_id, $data) { echo "New AsyncTask[id={$task_id}]".PHP_EOL; //返回任务执行的结果 $serv->finish("{$data} -> OK"); }); ``` 文档原话: **Worker 去工作生产出客户要的东西。而 TaskWorker 可以理解为行政人员,可以帮助 Worker 干些杂事,让 Worker 专心工作。** 再对比上面的代码,我的理解是Worker只负责接受客户端投递过来的信息然后下发给Task做。那么Worker仅仅只是负责散发任务给Task么? ### 你期待的结果是什么? 我想知道我的理解是不是有误,望有人能指导一下思想。
发布于3年前 · 3 次浏览 · 来自
提问
michonnehsu
### 问题描述 我寻思着,Worker和Task的关联关系。 文档里有一段关于Worker的解释: ***接受由 Reactor 线程投递的请求数据包,并执行 PHP 回调函数处理数据*** ### 相关代码 **文档里的执行异步任务案例** ```php $serv->on('Receive', function($serv, $fd, $reactor_id, $data) { //投递异步任务 $task_id = $serv->task($data); echo "Dispatch AsyncTask: id={$task_id}\n"; }); $serv->on('Task', function ($serv, $task_id, $reactor_id, $data) { echo "New AsyncTask[id={$task_id}]".PHP_EOL; //返回任务执行的结果 $serv->finish("{$data} -> OK"); }); ``` 文档原话: **Worker 去工作生产出客户要的东西。而 TaskWorker 可以理解为行政人员,可以帮助 Worker 干些杂事,让 Worker 专心工作。** 再对比上面的代码,我的理解是Worker只负责接受客户端投递过来的信息然后下发给Task做。那么Worker仅仅只是负责散发任务给Task么? ### 你期待的结果是什么? 我想知道我的理解是不是有误,望有人能指导一下思想。
赞
0
分享
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
评论
2021-04-14
鲁飞
你还可以在Worker进程中处理其他事情,而不是直接投递给task进程
赞
1
回复
微信公众号
热门内容
作者其它话题
- 多个模型如何进行事务异常回退?
- mysql的锁会影响到协程吗?
- 关于发送 Ping 帧的疑惑
- 关于服务端(异步风格)的bind疑问
- 关于 TCP客户端案例的疑惑
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。