【问题标题】:PHP Symfony2 SemaphorePHP Symfony2 信号量
【发布时间】:2016-02-11 12:22:56
【问题描述】:

我想要某种方式在不同请求之间保持变量。

我的情况:

我有一个在远程机器上执行命令的 symfony2 服务类。 我不想通过某种方式来控制该执行,以便在之前的执行尚未完成时停止。

我听说过 Semaphores,但我不确定这是否可以解决问题,以及这是否适合做这样的事情。

我想象的原理很简单。

Client1 向服务器发送请求,服务器开始在远程机器上执行代码。在此之前,它会检查是否设置了执行变量,如果没有,它会设置执行正在进行的变量。

Client2 以相同的逻辑发送请求,但现在设置了执行过程变量,这意味着远程服务器很忙,所以请求停止,服务器向客户端发送响应,表示服务当前很忙。

我怎样才能做到这一点?

【问题讨论】:

  • 任何形式的持久存储,最常见的是磁盘上的数据库或文件。像 reddis 这样的键/值存储也是一个不错的选择
  • 服务器一次不能执行超过一件事吗?这通常是服务器的用途

标签: php symfony semaphore


【解决方案1】:

服务启动时,在磁盘上创建一个文件。执行命令后,删除文件。其他请求检查文件是否存在,仅在文件不存在时执行命令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 2012-06-18
    • 2015-12-09
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    相关资源
    最近更新 更多