web-dev-qa-db-fra.com

Rails, à utiliser chaque fois que gem en développement

Désolé question rapide ici d'un parent Rails newbie. J'essaie d'utiliser la gemme Whenever pour planifier un certain nombre de tâches de râteau. Je ne peux pas pour la vie de moi le faire réellement commencer à exécuter les tâches cron sur ma machine de développement.

À en juger par les autres threads stackoverflow, il semble que je devrais ajouter ceci:

set :environment, "development"

à mon fichier schedule.rb. Mais alors quoi?

Et puis comment puis-je arrêter les tâches cron une fois qu'elles ont commencé?

Utilisation de Rails 3.2.3 dans OSX

MISE À JOUR: la réponse est d'exécuter $ whenever -w qui écrit le travail cron dans un fichier crontab. Le système commence alors immédiatement à exécuter automatiquement ce fichier crontab.

Malheureusement, mon fichier journal pour chaque fois contient les éléments suivants: "rake aborted! Don't know how to build task <task name>"

Je pense que cela pourrait être dû au problème connu de crontab/rvm, mais toutes les suggestions sont les bienvenues.

41
user1377556

Supprimez les tâches cron existantes.

crontab -r

Mettre à jour cronjob avec l'environnement.

whenever --update-crontab --set environment='development'
69
Ashwin Yaprala

Vous pouvez utiliser la commande whenever et ses différentes options pour manipuler votre crontab.

$ whenever --help
Usage: whenever [options]
    -i [identifier],                 Default: full path to schedule.rb file
        --update-crontab
    -w, --write-crontab [identifier] Default: full path to schedule.rb file
    -c, --clear-crontab [identifier]
    -s, --set [variables]            Example: --set 'environment=staging&path=/my/sweet/path'
    -f, --load-file [schedule file]  Default: config/schedule.rb
    -u, --user [user]                Default: current user
    -k, --cut [lines]                Cut lines from the top of the cronfile
    -v, --version
7
Conner
whenever -c cron-name  #removing cronjobs 
2
Sunny

L'ajout de la ligne de code suivante au-dessus de config/schedule.rb a fonctionné pour moi.

 ENV['Rails_ENV'] = "development"
0
Satishakumar Awati