Je dois pouvoir exécuter des tâches personnalisées sur un forum Discourse. Existe-t-il un moyen de charger des tâches rake définies dans un plugin afin de les utiliser en production ?
Je pense que cela devrait fonctionner. Il suffit de les placer dans le même répertoire que dans le plugin que celui où ils se trouvent dans le cœur.
J’ai déjà fait cela par le passé en créant une tâche Rake qui s’exécute après une autre, mais je n’ai jamais créé de tâche autonome.
Oui, ça marche. Au début, ça ne semblait pas fonctionner pour moi, c’est pourquoi j’ai posé la question, mais je l’ai réessayé et cela a fonctionné du premier coup.
J’ai ajouté ma tâche Rake dans lib/tasks de mon plugin. Je voulais confirmer que cela fonctionne pour toute autre personne qui tomberait sur ce problème.
Quelqu’un a déjà vu des tâches Rake dans lib/tasks s’exécuter deux fois ? La nôtre semble s’exécuter deux fois avec rake subscriptions:procourse_convert.
Bonjour @kimardenmiller, avez-vous déjà trouvé une réponse expliquant pourquoi votre tâche rake s’exécute deux fois ?
Je pense que cela pourrait être lié à la déclaration de la même méthode à deux endroits, ce qui, selon moi, a provoqué son exécution deux fois. Non vérifié, mais vérifiez cela.
EDIT : Je pense avoir compris comment cela se produit.
Ce n’est pas vraiment suivre la convention, ou plutôt peut-être trop.
Le problème est si vous référencez le fichier rake dans plugin.rb, il semble s’exécuter deux fois, mais la tâche rake est incluse même si vous ne la référencez pas, il n’est donc pas nécessaire de la charger lors de l’initialisation.
Autant que je sache, il n’y a aucune logique spécifique à Discourse ici. Je suppose que les fichiers de tâches sont automatiquement chargés si vous avez défini un ::Rails::Engine pour votre plugin ?