消息队列 - 如何实现php的异步任务队列
思路如下:
1)用户每发一条微博,就生成一个异步任务,PUSH到队列中去
2)由另外一个进程或线程顺序执行队列里的任务
问题是:
实现消息队列可以采用MemcachedQ,starling等等,将任务以某种格式放到消息队列中去没什么问题
但如何开启另外的进程或线程去取队列中的任务然后去执行呢?
写一个php循环去取队列中的任务?没有任务就直接循环着查询?有没有更好的解决方案?
回复内容:
在开发一个类微博系统,采用推模式,用户发一条微博,需要将此微博在其所有粉丝每人的“收件箱“中存一条,如果粉丝数量大,处理过程就会很耗时,想把这个逻辑用异步队列来实现。
思路如下:
1)用户每发一条微博,就生成一个异步任务,PUSH到队列中去
2)由另外一个进程或线程顺序执行队列里的任务
问题是:
实现消息队列可以采用MemcachedQ,starling等等,将任务以某种格式放到消息队列中去没什么问题
但如何开启另外的进程或线程去取队列中的任务然后去执行呢?
写一个php循环去取队列中的任务?没有任务就直接循环着查询?有没有更好的解决方案?
可以考虑redis的subscribe
http://redis.io/topics/pubsub
这个是推id的吧。
见过一个是依赖nginx的fastcgi_finish_request。
调用后。php继续执行。
可以参考这个 php-resque
https://github.com/chrisboulton/php-resque
任务队列
推荐阅读
-
消息队列 - 如何实现php的异步任务队列
-
mysql - php队列计划任务怎么做呢,用的是ignore_user_abort吗?
-
python的分布式任务huey如何实现异步化任务讲解
-
php实现双向循环队列--- (实现历史记录的前进后退等功能)
-
php基于双向循环队列实现历史记录的前进后退等功能,队列历史记录
-
如何使用css3实现一个类在线直播的队列动画的示例代码
-
mysql - php队列计划任务怎么做呢,用的是ignore_user_abort吗?
-
python的分布式任务huey如何实现异步化任务讲解_PHP教程
-
使用 PHP 消息队列实现 Android 与 Web 通信
-
PHP使用Redis的List(列表)命令实现消息队列