首页 > 解决方案 > 为什么我的 sidekiq 计划的 cron 作业没有在 heroku 上运行?

问题描述

我为我在 Rails 中编码的应用程序编写了几个预定的作业。这些工作会废弃网球比赛和结果的数据。它们在我的计算机上安排时运行完美。当我每分钟设置一个cron表达式'* * * * *'时,它们也在heroku上运行。

但是当我尝试为每四个小时设置一个表达式时,它会停止运行,但 heroku 工作人员已启动并且不会崩溃,所以我真的不明白发生了什么。我尝试了几种方法来编写我的 cron 表达式。

这是我在 sidekiq.yml 中尝试的最后一个:

:schedule:
  set_scrapp_state_job:
    cron: '1 1,13 * * *'
    class: SetScrappStateJob
  set_scrapp_drawed_job:
    cron: '1 2,14 * * *'
    class: SetScrappDrawedJob
  fill_participants_and_create_first_round_games_job:
    cron: '1 3,15 * * *'
    class: FillParticipantsAndCreateFirstRoundGamesJob
  reset_participants_while_qualified_and_luckyloser_in_draw_job:
    cron: '1 4,16 * * *'
    class: ResetParticipantsWhileQualifiedAndLuckyloserInDrawJob
  fill_wins_with_bye_job:
    cron: '1 5,17 * * *'
    class: FillWinsWithByeJob
  fill_games_results_for_current_tournaments_job:
    cron: '1 0,2,4,6,8,10,12,14,16,18,20,22 * * *'
    class: FillGamesResultsForCurrentTournamentsJob

标签: ruby-on-railsherokucronbackgroundworkersidekiq

解决方案


这实际上是我在 Heroku 上使用的计划的问题。免费计划让 dinos 在 30 分钟后睡觉,即使他们有后台工作要做,我认为这只是 web dynos 的情况。所以我改变了最便宜的计划,现在它可以工作了,因为测功机不再闲置了:)


推荐阅读