Расписание работы в Gearman на определенную дату и время

StackOverflow https://stackoverflow.com/questions/3547538

Вопрос

От того, что я могу видеть, Gearman не поддерживает запланированные рабочие места или задержки заданий. Я думал, что, возможно, запланированная работа может быть очередна в at сначала, а затем добавлен в очередь редукторов после at Срок действия периода времени истек.

at Задачи настойчивы, поскольку они записываются в качестве файлов в каталог в каталоге SPOAL из сервера. Таким образом, единственная шея бутылки потенциально будет простой скриптом, чтобы добавить задачу в очередь редукторов, потому что at не может быть распространен по серверам. Передача его в Gearman для обработки фактической работы означает, что я могу получить правильную регистрацию рабочих мест и т. Д.

Это лучший способ подойти к этому и у вас есть альтернативные идеи?

Причина, по которой я решил редуктор по поводу других решений очередей, состоит в том, что у него есть расширение PHP.

Код, который я пишу, используется для поддержания очереди электронных писем, которые необходимо отправить. Поэтому я могу указать, что я хочу отправить электронную почту на example@example.org в 9.50 в пятницу, например.

Это было полезно?

Решение

Я решил пойти at Маршрут как изначально выложен в моем вопросе. Для целей я написал маленькую обертку PHP для at Бинарный и проверил его на Ubuntu. Если вы заинтересованы, это можно найти на GitHub: http://github.com/treffynnon/php-at-job-queue-wrapper

Другие советы

Дополнительно хаковое решение, которое будет хорошо работать только по часовой или ежедневной резолюции, будет заключаться в том, чтобы сделать имя задания (функции), содержат дату, в которой вы хотели отправить. Затем у рабочие, начиная с CRON каждый час или день, чтобы зарегистрироваться для этих рабочих мест.

Например, если вы хотите отправить электронное письмо в 9 утра в понедельник 12 марта 2012 года, добавьте работу в очередь с именем, такими как Email_2012-03-12_09: 00.. Отказ Затем прогуливайтесь на работу CRON, которая управляет рабочим, который регистрирует любые подходящие на работу Эл. адрес_ + текущая дата и час.

Как я уже говорю, наверное, работоспособный, но весьма хаки!

Обновление 1: Я недавно видел, что документы для Персистенция базы данных Gearmand Теперь упомяните поле имени когда_to_Run. который является А.Н. Int., и может потенциально удерживать метеографию EPOCH UNIX. Это поле, похоже, не ссылается в код.

Если вы используете Zend ...

SLMQUUE - это слой абстракции очереди очереди. Это позволяет легко использовать системы очереди заданий в приложении Zend Framework 2. Таким образом, это не заставляет вас специально использовать один тип очереди заданий. Вы можете написать свой код и работы независимо от базовой системы. Это обеспечивает большую гибкость и развязку систем.

https://github.com/juriansluiman/slmceue.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top