开发者社区> 问答> 正文

求教各位如何实现php的异步任务队列?

在开发一个类微博系统,采用推模式,用户发一条微博,需要将此微博在其所有粉丝每人的“收件箱“中存一条,如果粉丝数量大,处理过程就会很耗时,想把这个逻辑用异步队列来实现。

思路如下:
1)用户每发一条微博,就生成一个异步任务,PUSH到队列中去
2)由另外一个进程或线程顺序执行队列里的任务

问题是:
实现消息队列可以采用MemcachedQ,starling等等,将任务以某种格式放到消息队列中去没什么问题
但如何开启另外的进程或线程去取队列中的任务然后去执行呢?
写一个php循环去取队列中的任务?没有任务就直接循环着查询?有没有更好的解决方案?

展开
收起
落地花开啦 2016-06-13 16:34:07 2548 0
2 条回答
写回答
取消 提交回答
  • 消费消息的php程序,可以写一个长轮询,消息队列RocketMQ MNS都支持长轮询的模式 https://help.aliyun.com/document_detail/141783.html?spm=a2c4g.11186623.6.640.25a33227fldoxV

    2021-03-19 22:34:29
    赞同 展开评论 打赏
  • 喜欢技术,喜欢努力的人

    这个是推id的吧。

    见过一个是依赖nginx的fastcgi_finish_request
    调用后。php继续执行。

    2019-07-17 19:36:23
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载