3 votes

L'exécution de méthodes Ruby via cron pose des problèmes

J'ai donc une méthode qui est exécutée toutes les 10 minutes (Background.cron) pour être exact.

Background.cron parcourt en boucle un ensemble de lignes de la base de données et, si certains critères sont remplis, une méthode ActionMailer est exécutée pour envoyer un courrier électronique.

Mais ce qui semble se produire (d'après mes journaux), c'est que lorsque la méthode ActionMailer est exécutée, la méthode Background.cron s'arrête jusqu'à ce que le prochain travail cron soit prêt à démarrer.

Comment cela peut-il s'expliquer ?

Le serveur est Apache 2 avec Passenger et Ruby Enterprise Edition.

PassengerMaxPoolSize est fixé à 10 et PassengerMaxInstancesPerApp à 5.

J'ai une tranche de 512MB sur Slicehost.

1voto

McJeff Points 1979

On dirait que le script de Ruby est en train d'exploser à ce moment-là. Enveloppez vos méthodes de courrier et attrapez toutes les exceptions soulevées, et enregistrez ? Vérifiez également le spool de courrier local de votre utilisateur. Cron vous a peut-être déjà envoyé un BT Ruby.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X