Назад | Перейти на главную страницу

Простой демон блокировки с API для PHP (или просто API)?

Я ищу простой демон блокировки, который прослушивает клиентов через TCP и обрабатывает запросы блокировки.

Мне нужно синхронизировать параллельные процессы PHP на НЕСКОЛЬКИХ машинах. Например. одна машина может сказать: «Я заблокирую идентификатор 'abcd' с этого момента и до своей смерти», и если вторая машина скажет такую ​​же «блокировку 'abcd'», ее запрос будет отложен до тех пор, пока 'abcd' не будет выпущен первой машиной . Идентификатор также освобождается, если процесс получения случайно умирает (когда он умирает, происходит отключение, поэтому демон блокировки может обработать это отключение как снятие блокировки).

Обратите внимание, что memcached add () в этом случае не так хорош, потому что он не может обрабатывать неожиданные отключения (это важно: во многих случаях процесс может завершиться неожиданно и без возможности освободить блокировку; также блокировку нельзя освободить по таймауту, потому что некоторые процессы работают долго). Мне нужен демон, который поддерживает открытые соединения и заботится о них.

Не совсем уверен, что вы пытаетесь сделать. Подходит ли Amazon Simple Queue Service?

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

В своем объяснении службы они говорят:

  • Разработчики могут создавать неограниченное количество очередей Amazon SQS с неограниченным количеством сообщений.
  • Очередь может быть создана в 4 регионах - Восток США (Северная Вирджиния), Запад США (Северная Калифорния), ЕС (Ирландия) и Азиатско-Тихоокеанский регион (Сингапур).
  • Тело сообщения может содержать до 64 КБ текста в любом формате (по умолчанию 8 КБ).
  • Сообщения могут храниться в очереди до 14 дней (по умолчанию - 4 дня).
  • Сообщения можно отправлять и читать одновременно.
  • Когда сообщение получено, оно блокируется на время обработки. Это предотвращает одновременную обработку сообщения другими компьютерами. Если обработка сообщения завершится неудачно, срок блокировки истечет, и сообщение снова станет доступным. В случае, когда приложению требуется больше времени для обработки, таймаут «блокировки» можно изменить динамически с помощью операции ChangeMessageVisibility.
  • Разработчики могут получить доступ к Amazon SQS через стандартные интерфейсы SOAP и запросов.
  • Разработчики могут безопасно обмениваться очередями Amazon SQS с другими. Очереди можно использовать совместно с другими учетными записями AWS и анонимно. Совместное использование очереди также может быть ограничено IP-адресом и временем суток.