2009-06-03 5 views
5

J'écris une application pour permettre aux utilisateurs de planifier des tâches ponctuelles de longue durée à partir d'une application web (Linux/Apache/CGI :: Application). Pour ce faire, j'utilise le module Schedule::At qui est l'interface Perl de la commande "at". Puisque les tâches planifiées ne se répètent pas, je ne considère pas "cron". J'ai deux problèmes avec "à" cependant:Comment planifier des tâches ponctuelles à partir d'une application Perl CGI?

  1. La planification fonctionne correctement lorsque mon application CGI s'exécute sous l'enveloppe suexec, mais pas lorsqu'elle est planifiée par le propriétaire du processus Apache. Comment puis-je faire fonctionner la planification dans les deux environnements (suexec et no-suexec)?
  2. Il semble que les processus planifiés par "at" ou Schedule :: At n'ont aucun rapport d'échec, et je trouve parfois que les tâches planifiées échouent silencieusement. Existe-t-il un moyen de consigner le fait que la tâche planifiée (pas le planificateur lui-même) n'a pas réussi à s'exécuter?

Je ne suis pas fixé sur "at" et je suis ouvert à l'utilisation d'autres méthodes de planification, plus robustes, s'il y en a.

Nous vous remercions de votre attention.

Répondre

5

J'ai entendu de bonnes choses à propos de The Schwartz. Il n'y a pas de délai - jusqu'à quand; vous soumettriez les travaux via à, mais cela devrait résoudre les deux problèmes listés ci-dessus, à condition que votre script submit_job soit simple.

(comme une mise en garde, je ne l'ai utilisé Gearman, je pense que vous voudriez une file d'attente d'emploi fiable pour cela, un mécanisme « feu et oublier », de sorte que vous pouvez garder votre submit_job stupide.)

+0

Merci pour la pointe Gearman. Au premier abord, cela semble être exactement ce dont j'avais besoin. –

+0

Après avoir regardé fixement Gearman et le Schwartz, j'ai trouvé que Beanstalk était la solution la plus appropriée à mon problème. Merci pour le conseil. –

Questions connexes