带有 PHP API 的简单锁定守护进程(或者只是简单的 API)?

带有 PHP API 的简单锁定守护进程(或者只是简单的 API)?

我正在寻找一个简单的锁定守护进程,它通过 TCP 监听客户端并处理锁定请求。

我需要在多台机器上同步并行的 PHP 进程。例如,一台机器可能说“从现在起,直到我去世,我将锁定‘abcd’标识符”,如果第二台机器也说“锁定‘abcd’”,那么它的请求将被延迟,直到第一台机器释放‘abcd’。如果获取进程意外死亡,标识符也会被释放(当它死亡时,会发生断开连接,因此锁定守护进程可能会将此断开连接处理为锁定释放)。

请注意,在这种情况下,memcached add() 并不是很好,因为它无法处理意外断开连接(这很重要:进程可能在许多情况下意外死亡,并且没有机会释放锁;而且锁不能通过超时释放,因为有些进程工作了很长时间)。我需要一个守护进程来保持打开的连接并关注它们。

答案1

不确定你到底想做什么。亚马逊的简单队列服务是否合适?

http://aws.amazon.com/sqs/

在他们对这项服务的解释中,他们说:

  • 开发人员可以创建无限数量的 Amazon SQS 队列和无限数量的消息。
  • 可以在 4 个区域创建队列 - 美国东部(弗吉尼亚北部)、美国西部(加利福尼亚北部)、欧盟(爱尔兰)和亚太地区(新加坡)。
  • 邮件正文最多可包含 64 KB 任意格式的文本(默认为 8KB)。
  • 消息可以在队列中保留最多 14 天(默认为 4 天)。
  • 可以同时发送和阅读消息。
  • 收到消息后,该消息在处理过程中会“锁定”。这样可防止其他计算机同时处理该消息。如果消息处理失败,锁定将过期,消息将再次可用。如果应用程序需要更多时间进行处理,则可以通过 ChangeMes​​sageVisibility 操作动态更改“锁定”超时。
  • 开发人员可以通过基于标准的 SOAP 和查询接口访问 Amazon SQS。
  • 开发人员可以安全地与他人共享 Amazon SQS 队列。队列可以与其他 AWS 账户共享,也可以匿名共享。队列共享还可以通过 IP 地址和时间进行限制。

相关内容