Как мне запланировать одноразовые задания из приложения Perl CGI? - PullRequest
5 голосов
/ 03 июня 2009

Я пишу приложение, позволяющее пользователям планировать разовые долгосрочные задачи из веб-приложения (Linux / Apache / CGI :: Application). Для этого я использую модуль Schedule :: At , который является Perl-интерфейсом для команды "at". Поскольку запланированные задания не повторяются, я не рассматриваю «cron». У меня есть две проблемы с "в", хотя:

  1. Планирование отлично работает, когда мое CGI-приложение запускается в оболочке suexec, но не тогда, когда это запланировано владельцем процесса Apache. Как настроить расписание для работы в обеих средах (suexec и no-suexec)?
  2. Похоже, что процессы, запланированные с помощью "at" или Schedule :: At, не имеют отчетов об ошибках, и я иногда обнаруживаю, что запланированные задачи завершаются сбоем молча. Есть ли способ зарегистрировать тот факт, что запланированное задание (не сам планировщик) не удалось запустить?

Я не зафиксирован на «at» и могу использовать другие, более надежные методы планирования, если таковые имеются.

Спасибо за ваше внимание.

1 Ответ

5 голосов
/ 03 июня 2009

Я слышал хорошие вещи о Шварц . Это не имеет задержки до тех пор, пока; вы отправляете задания по адресу at, но это должно решить обе проблемы, перечисленные выше, если ваш скрипт submit_job прост.

(в качестве предостережения, я использовал только Gearman , я думаю, вам нужна надежная очередь заданий для этого, механизм "запускай и забывай", так что вы можете сохранить свой submit_job немым. )

...