Question

Je suis actuellement en utilisant un serveur site5 et je voudrais rake jobs:work à peu près tout le temps en cours d'exécution. Je ne peux pas encore envoyer les emplois à moins que je suis connecté sur le serveur. J'espère que quelqu'un là-bas peut me aider. Avait beaucoup de problèmes avec ar_mailer et la pierre précieuse de whenever ... mais ont encore 5 gemmes fonctionne parfaitement dans mon application rails.

quelqu'un peut-il faire la lumière sur une solution pour cette s'il vous plaît? très appréciée. (Installé delayed_job comme un plug-in)

Était-ce utile?

La solution 2

OK J'ai une solution de contournement pour cela, il est le meilleur que je peux le faire, mais il fonctionne dans une certaine mesure ... Je servais d'emplois cron et un script personnalisé / fichier jobrunner .

J'ai créé le jobrunner script situé à script/jobrunner qui contient les éléments suivants

#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/environment'
Delayed::Worker.new.start

Ensuite, dans une tâche cron je l'ai fait exécuter ce fichier.

Dans le rapport de Cron je reçois encore quelques erreurs, mais les travaux exécutés et je suis heureux avec ça!

Le travail cron est en cours d'exécution toutes les heures à la 50e minute par exemple, et il passe par tous les delayed_jobs dans le tableau et les traite. Ceci est la meilleure solution de contournement que j'ai trouvé à mon problème. espérons que cette aide quelqu'un à l'avenir.

Aller voir ce que les autres scripts que je peux évoquer pour les tâches quotidiennes / hebdomadaires.

Autres conseils

Si vous utilisez Capistrano, commencez delayed_job lorsque votre application est déployée. Ajoutez ceci à votre fichier de recette deploy.

require 'delayed/recipes'
after "deploy:stop",        "delayed_job:stop"
after "deploy:start",       "delayed_job:start"
after "deploy:update_code", "delayed_job:stop"
after "deploy:restart",     "delayed_job:start"

emploi différé est livré avec un script pour lui-même à partir de l'arrière-plan et la journalisation pour log / delayed_job.log. Vous pouvez commencer une delayed_job daemon en cours d'exécution en mode développement comme ceci:

RAILS_ENV=development script/delayed_job start
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top