Task/Finish特性的用途

task模块用来做一些异步的慢速任务,比如webim中发广播,发送邮件等。

  • task进程必须是同步阻塞的
  • task进程支持定时器
    node.js 假如有10万个连接,要发广播时,那会循环10万次,这时候程序不能做任何事情,不能接受新的连接,也不能收包发包。

而swoole不同,丢给task进程之后,worker进程可以继续处理新的数据请求。任务完成后会异步地通知worker进程告诉它此任务已经完成。

当然task模块的作用还不仅如此,实现PHP的数据库连接池,异步队列等,还需要进一步挖掘。