Назад |
Перейти на главную страницу
Простой демон блокировки с 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-адресом и временем суток.