多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# onTask 在task_worker进程内被调用。worker进程可以使用swoole_server_task函数向task_worker进程投递新的任务。当前的Task进程在调用`onTask`回调函数时会将进程状态切换为**忙碌**,这时将不再接收新的Task,当`onTask`函数返回时会将进程状态切换为**空闲**然后继续接收新的Task。 ```php function onTask(swoole_server $serv, int $task_id, int $src_worker_id, mixed $data); ``` * $task_id是任务ID,由swoole扩展内自动生成,用于区分不同的任务。__$task_id和$src_worker_id组合起来才是全局唯一的,不同的worker进程投递的任务ID可能会有相同__ * $src_worker_id来自于哪个worker进程 * $data 是任务的内容 > `onTask`函数执行时遇到致命错误退出,或者被外部进程强制kill,当前的任务会被丢弃,但不会影响其他正在排队的Task 返回执行结果到worker进程 ----- 1.7.2以上的版本,在onTask函数中 return字符串,表示将此内容返回给worker进程。worker进程中会触发onFinish函数,表示投递的task已完成。 * return的变量可以是任意非`null`的PHP变量 1.7.2以前的版本,需要调用`swoole_server->finish()`函数将结果返回给worker进程