PHP消息队列推送;使用多线程python客户端处理


PHP push to message queue; process with multithreaded python client?

我想做的是:使用PHP将消息推入队列(Beanstalkd, IronMQ, Amazon SQS)。

然后我需要一个Python脚本来立即接收该消息。我想我只是有一个Python脚本运行while(true)循环保持轮询消息服务器?

然后为每个作业使用一个新线程来处理它。如果队列中有10个消息,我希望python运行10个线程,每个任务1个。

我的问题是:

  1. 这是一种可靠的做事方式,还是有更好的方法来设置它?
  2. 我如何确保我的Python脚本是启动和轮询永远?

这是一种可靠的做事方式,还是有更好的方法来设置它?

对我来说听起来很合理,但是如果您期望有大量的并发作业,您可能需要通过使用线程池来限制线程总数。

对于CPU密集型线程,当线程总数超过CPU内核总数时,您不会获得更多的CPU性能,并且如果线程需要大量的磁盘I/O,您将希望限制它们以避免磁盘抖动。

我如何确保我的Python脚本是启动和轮询永远?

守护进程通常有另一个进程监视它们,并在它们崩溃或无响应时重新启动它们。一个简单的cronjob就足够了。