swoole基础之task任务

       日常对于比较耗时的操作,我们一般不影响性能和客户体验的情况,会将任务交给一个任务去执行,例如:发送邮件,广播......

 

        对于使用task任务,我们之前需要进行一个参数的必要设置:task_worker_num

配置Task进程的数量,配置此参数后将会启用task功能。所以Server务必要注册onTask、onFinish2个事件回调函数。如果没有注册,服务器程序将无法启动。

Task进程是同步阻塞的,配置方式与Worker同步模式一致
最大值不得超过SWOOLE_CPU_NUM * 1000

        必须注册两个事件:   onTask和onFinish

       onTask:

在task_worker进程内被调用。worker进程可以使用swoole_server_task函数向task_worker进程投递新的任务。当前的Task进程在调用onTask回调函数时会将进程状态切换为忙碌,这时将不再接收新的Task,当onTask函数返回时会将进程状态切换为空闲然后继续接收新的Task。

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 是任务的内容

       onFinish:

当worker进程投递的任务在task_worker中完成时,task进程会通过swoole_server->finish()方法将任务处理的结果发送给worker进程。

void onFinish(swoole_server $serv, int $task_id, string $data)
$task_id是任务的ID
$data是任务处理的结果内容

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值