系统有两个异步进程

时间:2010-10-01 08:05:11

标签: php asynchronous

我打算编写一个系统,该系统应该接受来自用户的输入(来自浏览器),进行一些计算并向所有用户显示更新的数据,目前正在访问某个网站。

输入可以在一小时内出现一次,但也可以每秒出现100次。非常重要的是不要丢失任何用户输入,而是真正注册和处理所有用户输入。

所以,想法是创建两个程序。一个人将从浏览器接收数据(输入)并以某种方式将其存储在队列中(可能是一个数组,真的很快?)。第二个程序应该等到队列中有新项目(保存资源),然后变为活动状态并开始处理队列项目。两个程序都应该异步运行。

我可以使用php,所以我会用php编写第一个程序。但我不确定第二部分..我不确定如何从第一个到第二个程序发送一个事件。我现在需要一些建议。 php无法使用线程?我需要一些想法如何像我所描述的那样创建系统。

我会使用彗星服务器将反馈传达给输入来自的网站(此部分已经过测试)

1 个答案:

答案 0 :(得分:0)

根据上面的评论,您似乎正在描述消息排队/处理系统,但是更深入地查看您的问题可能并非如此:

  

两个程序都应该异步运行。

拥有一个处理来自浏览器的请求但是异步执行的程序是矛盾的。虽然您可以在处理HTTP请求后处理消息的入队,但它仍然是一个同步过程。

  

不要丢失任何用户输入非常重要

PHP不是编写核反应堆控制系统的好语言(根据微软的说法,也不是Java)。 HTTP和TCP / IP也不适用于实时系统。

  

每秒100次

抱歉 - 我认为你的意思是可能有很多并发请求。这不是一个巨大的数额。

您似乎混淆了将COMET / Ajax与应用程序的异步处理一起使用的目标。即使有非常大量的数据,也应该可以使用同步工作的单个PHP脚本来处理交互。