以下是我要做的事情:使用PHP将消息推送到队列中(Beanstalkd
,IronMQ
,Amazon SQS
)。
然后我想要一个Python脚本来立即获取消息。我想我只有一个Python脚本运行while(true)
循环来继续轮询消息服务器?
然后使用新线程为每个作业处理它。如果队列中有10条消息,我希望python运行10个线程,每个作业运行1个。
我的问题是:
答案 0 :(得分:1)
这是一种可靠的做事方式,还是有更好的方法来设置它?
对我来说听起来很合理,但如果你期望大量的同时工作,你可能想要使用thread pool来限制线程的总数。
对于CPU密集型线程,当线程总数超过CPU内核总数时,如果线程需要大量磁盘I / O,您将不会获得更多CPU性能,您需要限制它们是为了避免颠簸磁盘。
如何确保我的Python脚本启动并永远轮询?
守护程序进程通常会有另一个监视它们的进程,并在它们崩溃或无响应时重新启动它们。一个简单的cronjob可能就足够了。