Používam prostredie RVM. Verzia RUby: koľajnice 2.1.2: 4.1.1
schedule.rb :
every 1.minute do
runner "note.send_mail"
end
použil som whenever --update-crontab
aktualizovať kartu cron.
keď kontrolujem úlohy pomocou crontab -l
zobrazuje sa nižšie, bez správneho času. a cron job nefunguje.
* * * * * /bin/bash -l -c "cd /Desktop/folder1/blog2 && bin/rails runner -e production """note.send_mail""""
Môže mi niekto pomôcť vyriešiť to? Vďaka!
odpovede:
2 pre odpoveď č. 1Prejsť na vašu ~/.rvmrc
súbor a pridajte nasledujúce:
rvm_trust_rvmrcs_flag=1
potom whenever --update-crontab
ešte raz. Podľa README kedykoľvek:
Ak vaše produkčné prostredie používa RVM (RubySprávca verzií), narazíte na gotchu, ktorá spôsobí pozastavenie vašich úloh cron. Toto priamo nesúvisí s programom Whenever a ladenie môže byť náročné. Vaše súbory .rvmrc musia byť dôveryhodné, inak úlohy cron visia a čakajú na dôveryhodnosť súboru. Riešením je deaktivácia výzvy pridaním tohto riadku do súboru rvm používateľa v súbore ~ / .rvmrc
rvm_trust_rvmrcs_flag = 1
Toto povie rvm, aby dôveroval všetkým súborom rvmrc.
Ak to nefunguje, vyskúšajte ďalšie riešenia uvedené na tejto stránke: Poznámky RVM.
0 pre odpoveď č. 2
Môžete definovať vlastného bežca, ktorý načíta rvm na príkazovom riadku, napríklad
job_type :runner_with_rvm, "source /etc/profile.d/rvm.sh; cd :path;rvm 2.0@gemset do bundle exec script/rails runner -e :environment ":task" :output"
every 1.minute do
runner_with_rvm "Note.send_email"
end
vymeniť 2.0@gemset
s požadovanou rubínovou verziou a drahokamom.
Mohlo by to byť /etc/profile.d/rvm.sh
je vo vašom prostredí tiež niečo iné.