J'utilise le plugin delayed_job dans Rails pour faire du traitement en arrière-plan, et je suis confronté à un hoquet dans le 'développement agile' que j'ai connu jusqu'ici dans Rails ...Rails/delayed_job - Je veux charger la dernière version de la classe d'emplois
Habituellement dans les rails si j'atteins une erreur/je souhaite ajouter une nouvelle fonctionnalité - j'ajoute juste du code et actualise la page et le nouveau code s'exécute. Avec delayed_job, il semble que la classe job ne soit pas rechargée ... si un job échoue et que je corrige l'erreur et redémarre le job, l'ancien code s'exécute à nouveau.
Est-il possible de faire en sorte que delayed_job charge la dernière version de la classe de travail avant de l'appeler?
Juste au cas où cela n'a rien à voir avec elle - je sais que delayed_job a quelques options différentes façons de déclarer les emplois/exécuter des travaux:
Ma classe d'emploi est dans le répertoire lib de Rails et est déclarée comme:
class FooJob < Struct.new(:foo_id)
et j'invoquer le travail comme celui-ci du contrôleur:
Delayed::Job.enqueue(FooJob.new(params[:id]))
Une autre bonne solution peut être trouvée [ici] (http://stackoverflow.com/a/4905363/250703) – Christian