随着应用程序的增长,工人缩放

时间:2013-02-23 01:35:59

标签: php worker

我目前有一个PHP守护进程需要在永无止境的循环中运行非常快速的迭代。

看起来像while(true) { /* do something */ }

问题是我的应用程序要求此循环在我的应用程序增长时执行越来越多的操作。但是,如果循环运行时间过长,则可能会错过某些操作。由于循环正在发送网络请求,因此需要一些时间。目前它每个循环只发出大约5个请求,但我已经可以看到它很快就会增长到50左右。

如果每个请求需要1秒钟,则50秒循环是不可接受的。信息将被遗漏。

我的问题是如何改进我当前的系统以适应更多的请求,同时仍保留非常快速的循环迭代?

我知道PHP并不适合这种情况,但当时提供了一个非常优雅的解决方案。我需要使用带有JSON编码/解码的MySQL数据库,PHP非常适合。如果有更好的语言,请告诉我。

2 个答案:

答案 0 :(得分:0)

启动多个工作人员,处理一部分网址。许多事情取决于你想要实现的细节,但也许消息队列(如rabbitMQ)也会有所帮助。例如:每个工作人员都从队列接收消息,并且此消息包含他们应该处理的URL。

答案 1 :(得分:0)

尝试workaholic

它使用Redis作为消息队列,为检查工作提供了票证系统。

使用基于javascript的代码,很容易理解代码。