求解任务队列的原理?

发布于 2022-09-01 12:56:49 字数 397 浏览 19 评论 0

最近遇到了一些问题,服务器对某个处理太耗时导致网页反应速度很慢,听说了任务队列。谷歌了一下,基本上都是讲某个队列怎么用,但其实并没有一个太清晰的概念,能请各位讲解一下吗?
首先说一下我理想中的情况。比如一个请求被处理的时候,我发现它很费时,于是对它进行一番描述后再序列化,并存到某个公共的地方。同时有一个守护进程在监听那个公共的地方,一但发现有动静就从公共的地方取一条数据出来,反序列化后根据逻辑再调用某些脚本来处理这些费时的任务。
不知道这么设想队列的工作方式有没有问题呢?
如果是这样的话,gearman或者disque等,扮演的是上述哪些角色呢?
能推荐一些适合PHP使用的吗,谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

贵在坚持 2022-09-08 12:56:49

队列本质上是为了解耦而存在的.
如你所说的,服务器对某个处理太耗时导致网页反应速度很.这个本身如果存在可以拆分的部分,展示逻辑和后续的处理逻辑可以分开,就可以采用队列的方案来进行计算.
举例来说,阅读邮件之后,会有一个将未读标记为已读的.在你打开邮件的同时,这个状态的更换可以不用立即处理,丢到队列里去,先把邮件内容取出来做展示,然后后续有个类似守护进程的不断的去队列里消费(或者说不断的问队列,有没有新的消息啊),取出这个将XX邮件未读状态更改为已读状态的事件,然后做处理.

梦在深巷 2022-09-08 12:56:49

php队列,推荐使用 httpsqs
使用方法可以去看张宴的博客,
使用方法大概就是吧比较耗时的任务丢到httpsqs里面,丢进去,就代表成功,然后马上返回,告诉用户处理成功

然后后台起一个计划任务每秒执行一次,往httpsqs里面取出数据,然后进行比较耗时的操作,取到数据为空,就代表队列已经空了
博客地址

灯角 2022-09-08 12:56:49

memcacheq

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文