Vérifiez si le travail retardé est exécuté dans des rails
Je suis en train de concevoir une page d'état où je dois montrer que le retard de la tâche est en cours d'exécution. S'il vous plaît aider moi à trouver dans le code.
Suis en utilisant
Rails 3.0.20,
ruby 1.8.7 (2011-06-30 version 352), et
delayed_job 3.0.4
source d'informationauteur Virtual
Vous devez vous connecter pour publier un commentaire.
avec Rails4 vous pouvez vous en ssh sur votre serveur et d'aller dans le /dossier en cours au sein de votre application et de l'exécution:
Vous pouvez utiliser
RAILS_ENV=production script/delayed_job statut si vous êtes à la vérification en mode de production
Actuellement, la meilleure façon que je peux penser à assurer la
delayed_job daemon
est toujours en cours d'exécution, est d'ajouter uneinitializer
à notre application Rails qui vérifie si le démon est en cours d'exécution. Si ce n'est pas en cours d'exécution, puis lainitializer
commence ledaemon
sinon, laisse-t-il.Maintenant la question est donc de savoir comment détecter que le
Delayed_Job daemon
est en cours d'exécution à partir de l'intérieur d'un script?Simple
Vérifier l'existence des démons
PID file
(Fichier.existent-ils? ...). Si il y est alors supposer qu'il exécute d'autre de le démarrer.Le moyen le plus simple pour vérifier si delayed_job est en cours d'exécution ou non, pour vérifier à
locked_by
champ.Ce champ contiendra le travailleur ou le processus de verrouillage/le traitement du travail.
De course
Delayed::Job.where('locked_by is not null')
va vous donner quelques résultats, si il y a des travaux en cours d'exécution.En outre, vous pouvez avoir un sur des roulettes tâche l'exécution de cette requête, pour vérifier l'état d'avancement.
Espère que cette aide.
Pour vérifier le statut d'emploi, etc vous pouvez utiliser delayed_job_web gem qui fait appel à toute la file d'attente des emplois. Et pour s'assurer que sa marche tout le temps de l'installer monit. Voici la railscast. Voici plus d'informations sur la façon de configurer monit pour delayed_job
Vérifier Comment puis-je déterminer si un processus différent de l'id est en cours d'exécution à l'aide de Java ou de JRuby sur Linux?