为了账号安全,请及时绑定邮箱和手机立即绑定

http请求之间实现操作系统层面的通信,有可能吗?

http请求之间实现操作系统层面的通信,有可能吗?

心有法竹 2019-02-26 13:04:33
最近在做一个东西, 用python写, wsgi的接口, 部署在sae, sae的服务器应该是nginx吧. 当然, 解决方案不一定是python的, php也可以, 但是千万不要跟我说自己实现一个服务器, 现在是nginx, nginx... . 情况是这样的: 有两个并发的请求, 记作A和B吧, 对于服务器来说是两个线程. A执行到一半, 阻塞下来, 直到B给A发出信号, A才继续执行下去. 这样好像有一个蛮直观的方法: 在cache或者数据库里面设置一个布尔, 当作mutex用. 但是我阻塞的时候, 我就需要不停地去对数据库进行轮询, 这样耗费的资源实在太多. 所以我就想, 有没有办法曲线救国, 去调用系统里的(渣浪的系统大概是Linux, 也就是pthread的) mutex API呢. 如果两个请求同一个进程, 那么也许可以把mutex的地址保存到数据库......好吧我大概想多了. 不要用死循环(就算+sleep)去轮询, 我什么都愿意.
查看完整描述

3 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

可否使用命名管道呢

查看完整回答
反对 回复 2019-03-01
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

查阅一下PHP官方文档 进程控制扩展 里面的 posix_kill 是否可以?

查看完整回答
反对 回复 2019-03-01
?
MM们

TA贡献1886条经验 获得超2个赞

=_=! 不是太懂题主的意思,可能是说 A 和 B 一块运行,A运行到一半不运行了然后等待 B 的通知再执行,是这个意思么?

如果是这个意思的话我觉得你可以把 A 拆成 A' 和 C 两部分,A' 为接受 B 通知之前的代码,C 为接受 B 通知之后的代码。A' 和 B 执行完毕了都跳转到 C 去执行代码。C 代码首先要检测 A' 和 B 处理的内容是否完备,未完备则停止运行。当然处理的数据都最好用外部的存储存储起来。我觉得这样应该是最简单的实现方法了吧。

另外,如果是 SAE 的话就不要做他想了,限制超多的根本不太可能会让你接触到系统级别的接口之类的。

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 543 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信