Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP推送到消息队列;使用多线程python客户端处理?_Php_Python_Message Queue - Fatal编程技术网

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

PHP推送到消息队列;使用多线程python客户端处理?,php,python,message-queue,Php,Python,Message Queue,下面是我试图做的:使用PHP将消息推送到队列中(要么Beanstalkd,IronMQ,AmazonSQS) 然后我需要一个Python脚本来立即获取消息。我想我只需要让1个Python脚本运行while(true)循环来继续轮询消息服务器 然后为每个作业使用一个新线程来处理它。如果队列中有10条消息,我希望python运行10个线程,每个作业1个线程 我的问题是: 这是一种可靠的做事方式,还是有更好的方法 如何确保我的Python脚本始终处于启动和轮询状态 这是一种可靠的做事方式,还是有更好的

下面是我试图做的:使用PHP将消息推送到队列中(要么
Beanstalkd
IronMQ
AmazonSQS

然后我需要一个Python脚本来立即获取消息。我想我只需要让1个Python脚本运行
while(true)
循环来继续轮询消息服务器

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

我的问题是:

  • 这是一种可靠的做事方式,还是有更好的方法
  • 如何确保我的Python脚本始终处于启动和轮询状态
  • 这是一种可靠的做事方式,还是有更好的方法

    听起来很合理,不过如果您希望同时执行大量作业,您可能希望使用

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

    如何确保我的Python脚本始终处于启动和轮询状态


    守护进程通常会有另一个进程来监视它们,如果它们崩溃或没有响应,就会重新启动它们。一个简单的cronjob就足够了。

    这就是我想要处理Python脚本的地方吗?@StephenSarcsamKamenar我真的不能推荐任何具体的解决方案,因为我从来没有使用过cronjob以外的任何东西。真正的守护进程通常将
    fork()
    子进程并监视子进程,但这可能比您需要的更复杂。最后,只要您的守护进程经过良好测试,您可能根本不需要监视它。这家伙会做:1。监控您的流程2。在不使用init.d脚本3的情况下启动守护程序。如果它死了,就复活。