Como faço para agendar tarefas de uma só vez a partir de um aplicativo Perl CGI?
-
09-09-2019 - |
Pergunta
Eu estou escrevendo um aplicativo que permite aos usuários agendar um tempo de execução demorada tarefas de uma aplicação web (Linux / Apache / CGI :: Aplicação). Para fazer isso eu uso o Horário :: no módulo que é a interface Perl ao comando "at". Desde as tarefas agendadas não estão repetindo, não estou considerando "cron". Tenho dois problemas com "at" embora:
- Agendamento funciona bem quando minha aplicação CGI é executado sob o invólucro suexec, mas não quando programado pelo proprietário do processo Apache. Como posso obter a programação para trabalho em ambos os ambientes (suexec e sem suexec)?
- Parece que os processos agendados por "at" ou Schedule :: Em não têm relatórios de falha, e eu às vezes acham que as tarefas programadas falhar silenciosamente. Existe alguma maneira de registrar o fato de que a tarefa agendada (não o próprio programador) não foi capaz de prazo?
Não estou fixo em "at" e estou aberto a usar outros mais robustos, métodos de agendamento, se houver algum.
Obrigado por sua atenção.
Solução
Eu ouvi coisas boas sobre A Schwartz . Ele não tem um atraso de até embora; você iria apresentar os trabalhos através de pelo, mas que deve resolver ambos os problemas que você lista acima, desde que o seu script SUBMIT_JOB era simples.
(como uma advertência, eu tenho usado apenas Gearman , eu acho que você 'd querem uma fila de trabalho confiável para isso, um 'dispare e esqueça' mecanismo, para que possa manter o seu SUBMIT_JOB mudo.)