PHP里如何将多进程消费队列改写成长尾词?

2026-04-06 08:530阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1221个文字,预计阅读时间需要5分钟。

PHP里如何将多进程消费队列改写成长尾词?

最近开发了一个小功能,用于处理序列mcq数据,启动一个进程消耗序列数据。后续发现一个进程处理不过来,又添加了一个进程,过了段时间发现处理还是不够,... 这种方式每次都要修改代码。

PHP里如何将多进程消费队列改写成长尾词?

引言

最近开发一个小功能,用到了队列mcq,启动一个进程消费队列数据,后边发现一个进程处理不过来了,又加了一个进程,过了段时间又处理不过来了......

这种方式每次都要修改crontab,如果进程挂掉了,不会及时的启动,要等到下次crontab执行的时候才会启动。关闭(重启)进程的时候用的是kill,这可能会丢失正在处理的数据,比如下面这个例子,我们假设sleep过程就是处理逻辑,这里为了明显看出效果,将处理时间放大到10s:

<?php $i = 1; while (1) { echo "开始第[{$i}]次循环\n"; sleep(10); echo "结束第[{$i}]次循环\n"; $i++; }

当我们运行脚本之后,等到循环开始之后,给进程发送 kill {$pid},默认发送的是编号为15的SIGTERM信号。

阅读全文

本文共计1221个文字,预计阅读时间需要5分钟。

PHP里如何将多进程消费队列改写成长尾词?

最近开发了一个小功能,用于处理序列mcq数据,启动一个进程消耗序列数据。后续发现一个进程处理不过来,又添加了一个进程,过了段时间发现处理还是不够,... 这种方式每次都要修改代码。

PHP里如何将多进程消费队列改写成长尾词?

引言

最近开发一个小功能,用到了队列mcq,启动一个进程消费队列数据,后边发现一个进程处理不过来了,又加了一个进程,过了段时间又处理不过来了......

这种方式每次都要修改crontab,如果进程挂掉了,不会及时的启动,要等到下次crontab执行的时候才会启动。关闭(重启)进程的时候用的是kill,这可能会丢失正在处理的数据,比如下面这个例子,我们假设sleep过程就是处理逻辑,这里为了明显看出效果,将处理时间放大到10s:

<?php $i = 1; while (1) { echo "开始第[{$i}]次循环\n"; sleep(10); echo "结束第[{$i}]次循环\n"; $i++; }

当我们运行脚本之后,等到循环开始之后,给进程发送 kill {$pid},默认发送的是编号为15的SIGTERM信号。

阅读全文