0

我目前有一个 PHP 守护程序,它需要通过一个永无止境的循环运行非常快速的迭代。

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

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

如果每个请求需要 1 秒,那么 50 秒的循环是不可接受的。信息会丢失。

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

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

4

2 回答 2

0

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

于 2013-02-23T01:45:22.677 回答
0

试试工作狂吧。

它使用 Redis 进行消息队列,提供票务系统进行检查工作。

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

于 2014-05-17T17:29:32.047 回答