您的位置 首页 php

Swoole异步task

在Server程序中如果需要执行很耗时的操作,比如一个聊天服务器发送广播,Web服务器中发送邮件、短信。如果直接去执行这些函数就会阻塞当前进程,导致服务器响应变慢。

Swoole提供了异步任务处理的功能,可以投递一个异步任务到TaskWorker进程池中执行,不影响当前请求的处理速度。

实现基于第一个WS服务器,只需要增加onTask和onFinish 2个事件回调函数即可,onFinish事件接收onTask事件执行完毕后的返回值。另外需要设置task进程数量,可以根据任务的耗时和任务量配置适量的task进程。

使用须知

必须设置Task进程数: task_worker_num

投递一个异步任务到task_worker池中:Server->task

必须注册onTask、onFinish2个事件回调函数。

示例

以创建一个WebSocket服务异步投递任务为例:

ws_server.php:

前端页面监听:

前后刷新了两次页面,WebSocket服务器监听结果(服务器会先返回消息给客户端,然后再执行投递任务):

文章来源:智云一二三科技

文章标题:Swoole异步task

文章地址:https://www.zhihuclub.com/77668.shtml

关于作者: 智云科技

热门文章

网站地图