我打算编写一个系统,该系统应该接受来自用户的输入(来自浏览器),进行一些计算并向所有用户显示更新的数据,目前正在访问某个网站。
输入可以在一小时内出现一次,但也可以每秒出现100次。非常重要的是不要丢失任何用户输入,而是真正注册和处理所有用户输入。
所以,想法是创建两个程序。一个人将从浏览器接收数据(输入)并以某种方式将其存储在队列中(可能是一个数组,真的很快?)。第二个程序应该等到队列中有新项目(保存资源),然后变为活动状态并开始处理队列项目。两个程序都应该异步运行。
我可以使用php,所以我会用php编写第一个程序。但我不确定第二部分..我不确定如何从第一个到第二个程序发送一个事件。我现在需要一些建议。 php无法使用线程?我需要一些想法如何像我所描述的那样创建系统。
我会使用彗星服务器将反馈传达给输入来自的网站(此部分已经过测试)
答案 0 :(得分:0)
根据上面的评论,您似乎正在描述消息排队/处理系统,但是更深入地查看您的问题可能并非如此:
两个程序都应该异步运行。
拥有一个处理来自浏览器的请求但是异步执行的程序是矛盾的。虽然您可以在处理HTTP请求后处理消息的入队,但它仍然是一个同步过程。
不要丢失任何用户输入非常重要
PHP不是编写核反应堆控制系统的好语言(根据微软的说法,也不是Java)。 HTTP和TCP / IP也不适用于实时系统。
每秒100次
抱歉 - 我认为你的意思是可能有很多并发请求。这不是一个巨大的数额。
您似乎混淆了将COMET / Ajax与应用程序的异步处理一起使用的目标。即使有非常大量的数据,也应该可以使用同步工作的单个PHP脚本来处理交互。