我有一个NotificationService,其方法如下:
def trial teacher
notification = Notification.create(recipient: teacher, tag: 'trial', text: 'text', title: 'title')
notification.deliver
end
我希望有一个Whenever跑步工作来执行此方法... bin/rails runner "NotificationService.new.trial" --silent
,但如果我尝试这样做,我会收到错误Please specify a valid ruby command or the path of a script to run.
。然而,如果我尝试使用模型而不是服务,它可以工作(例如,Notification.last.deliver
)
并且在开发时执行完全正常,但不适用于生产。似乎Cron不存在服务类
我错过了什么?
答案 0 :(得分:0)
解决了!事实证明麻烦不在于Whenever或Cron,而在于我试图运行的确切方法。 由于生产环境的数据不断变化,当我运行NotificationService.new.trial时,我很幸运没有收到错误。然后数据发生了变化,Cron试图运行失败了。
使用安全导航操作员(&amp ;.)解决了所有问题!