【发布时间】:2021-10-08 04:08:52
【问题描述】:
您好,我正在使用when gem 并尝试发送每日电子邮件。为了进行测试,我将它设置为 2 分钟,并将它放在我的 schedule.rb 文件中。它调用我在 rake 文件中的任务。当我运行 bundle exec rake task_to_be_call 时,它运行并工作。但实际调度不起作用。当我尝试运行以找出 crontab 时,它说没有这样的文件或目录。有什么方法可以获取 crontab 文件,还是我自己制作?如何测试或让我的调度程序运行该任务?
编辑:感谢关于共享代码和错误的建议。
在我的 lib/tasks/daily_email.rake 我有
desc 'Daily email rake task test'
task daily_email_call: :environment do
ReportMailer.with(email: "email@email.com").daily_summary_report.deliver_now
end
然后在我的 config/schedule.rb 我有
every 2.minute do
rake 'daily_email_call'
end
当我运行 bundle exec rake daily_email_call 时,它可以正常运行并执行发送电子邮件任务。我的问题是如何让它按计划完成。我没有 crontab 文件。我什至可以在本地执行此操作,还是需要在正在运行的服务器上执行此操作。我在本地运行时使用的是 Windows 而不是 Linux。
【问题讨论】:
-
你应该显示你的代码和完整的错误
-
你应该调试一下我认为的 $PATH 值
-
I am using windows not Linux-> 所以你可能首先需要了解如何在窗口上运行 cron,例如 this。
标签: ruby-on-rails cron whenever