管理脚本池的方法

管理脚本池的方法

我有一个 PHP 脚本,用于等待 AMQP 消息。当收到一条消息时,它会被处理,处理完成后,它会等待下一条消息。

问题当然是这会造成阻塞。例如,如果一条传入消息需要我联系外部 REST API,则处理可能需要几秒钟才能完成,而这段时间内它将无法处理其他消息。

我可以多次启动我的脚本,例如 8 次。这样我就有 8 个“消费者”,这似乎很有效。但是,现在的问题是,我该如何管理这 8 个不同的进程?

我基本上是在寻找一些实用程序,允许我指定我想要启动特定脚本 8 次,然后能够监视这些进程的正常运行时间等。有这样的实用程序吗?

答案1

使用 upstart。

编辑 /etc/init/whateveryouwant.conf

start on runlevel [2345]

task

env CONSUMERS=8

script
  for i in `seq 1 $CONSUMERS`
  do
    start /fullpath/to/your/script/here CONSUMER=$i
  done
end script
respawn limit 15 5

然后你可以使用service whateveryouwant start service whateveryouwant stop

相关内容