【问题标题】:System with two asynchronous processes具有两个异步进程的系统
【发布时间】:2011-04-19 17:47:40
【问题描述】:

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

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

因此,我们的想法是创建两个程序。一个人将从浏览器接收数据(输入)并以某种方式将其存储在队列中(也许是一个数组,真的很快吗?)。第二个程序应该等到队列中有新项目(节省资源)然后变得活跃并开始处理队列项目。两个程序都应该异步运行。

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

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

【问题讨论】:

标签: php asynchronous


【解决方案1】:

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

两个程序应该异步运行。

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

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

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

每秒 100 次

抱歉 - 我以为您的意思是可能有很多并发请求。这不是一个大数目。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    • 2014-02-02
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多