【问题标题】:Trouble with crontab and using whenever gemcrontab 和使用 gem 时出现问题
【发布时间】: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


【解决方案1】:

文件名有错别字,

lib/tasks/darily_email.rake => lib/tasks/daily_email.rake

我猜这是导致错误的原因,no such file or directory

【讨论】:

  • 哦,谢谢你的想法,但不幸的是,那个错字只是在我的帖子中描述的。问题不在于耙子工作。就像我说的那样,我可以通过控制台调用该作业并且它可以正确执行它。我只是不明白 cron 作业是如何工作的以及如何安排日程。我没有 crontab。任何想法?服务器在 azure docker 配置中运行。知道如何运行命令,我想告诉它更新 crontab。但我不知道如何运行命令行,它只是让你上传构建的应用程序。
猜你喜欢
  • 2022-09-16
  • 2013-03-08
  • 2012-03-22
  • 2011-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多