php内部的信令
hi在实现长时间保持打开的连接(comet)时, 如何在php进程(未完成的请求)之间实现信令 时间线示例:php内部的信令,php,multithreading,http,Php,Multithreading,Http,hi在实现长时间保持打开的连接(comet)时, 如何在php进程(未完成的请求)之间实现信令 时间线示例: 请求1开始 请求1采取行动 请求1睡眠 请求2开始 请求2采取行动 请求2通知请求1并进入睡眠状态 请求1唤醒并发送新数据 请求1睡眠代理 我想知道是否有一种方法使用更少(注意?)的cpu处理理想情况下,我会将其与请求或“作业”一起写入数据库 脚本1执行某些操作并将“作业”写入数据库 脚本1休眠一段时间,然后检查数据库中是否有该作业的返回代码,如果有,则 行动 否则,请睡眠/重复 脚
- 请求1开始
- 请求1采取行动
- 请求1睡眠
- 请求2开始
- 请求2采取行动
- 请求2通知请求1并进入睡眠状态
- 请求1唤醒并发送新数据
- 请求1睡眠代理
我想知道是否有一种方法使用更少(注意?)的cpu处理理想情况下,我会将其与请求或“作业”一起写入数据库 脚本1执行某些操作并将“作业”写入数据库
脚本1休眠一段时间,然后检查数据库中是否有该作业的返回代码,如果有,则
行动
否则,请睡眠/重复 脚本2检查数据库中未完成的作业
如果是,则
行动并编写返回代码
否则睡眠/重复我相信你将不得不使用。不过,服务器必须支持分叉
至于循环中的cpu处理负载使用,以便处理器有时间供其他进程使用。如果您的平台是Linux/Unix,则可以使用
- 请求1开始
- 请求1采取行动
- 请求1睡眠和读取队列(睡眠(1)和读取队列)
- 请求2开始
- 请求2采取行动
- 请求2向队列发送消息
- 请求1从队列接收消息,唤醒并发送新数据
- 请求1再次睡觉
你可以在没有睡眠的情况下做这件事,但是编码会更困难。我想避免睡眠;检查;sleep prosegue,在发出信号时,你会一直保持睡眠,直到你在Que中收到一条消息感谢oz\msg\u receve blocks对我来说非常适合我的目标当它阻塞时,我会检查并报告它的cpu使用情况到目前为止你看起来很好,请原谅延迟响应,但是否有方法分发消息供任何侦听器接收?@borrel此消息可由任何侦听器接收。对于分发,我很抱歉向多个侦听器发送消息,并让他们全部处理