Ruby on rails 使用gem调度顺序任务

Ruby on rails 使用gem调度顺序任务,ruby-on-rails,ruby,cron,whenever,Ruby On Rails,Ruby,Cron,Whenever,我正在使用where为rails应用程序安排任务 我的任务如下: every 24.hours do command "do_this" rake "do_that" end 我的观点是,当我将它写入crontab时,使用where-w,我看到它生成两个同时运行的独立任务。问题是,两者在逻辑上都是一个序列,这意味着,只要“do_this”命令已经成功运行,rake任务“do_this”就应该运行 我试图像命令“dou this”和&rake“dou that”一样联系这两个命令,但

我正在使用where为rails应用程序安排任务

我的任务如下:

every 24.hours do
   command "do_this"
   rake "do_that"
end
我的观点是,当我将它写入crontab时,使用where-w,我看到它生成两个同时运行的独立任务。问题是,两者在逻辑上都是一个序列,这意味着,只要“do_this”命令已经成功运行,rake任务“do_this”就应该运行

我试图像命令“dou this”和&rake“dou that”一样联系这两个命令,但我收到了一个语法错误

  • 是否存在任何技巧来创建任务之间的依赖关系

  • crontab是同时并行执行作业,还是处理队列中同时调度的N个任务


    • 我认为你可以做两件事:

      (1) 从rake任务运行命令:

      task :do_that => :environment do
        system "do_this"
        ...
      end
      
      并将schedule.rb文件简化为:

      every 24.hours do
         rake "do_that"
      end
      
      (2) 从命令行运行所有内容:

      every 24.hours do
        command "do_this && rake do_that"
      end
      

      为什么不将第二个命令滚动到第一个命令中?在我看来,如果它们在逻辑上是相关的,你应该把它们放在一起。更好的是,制作一个调用这两个函数的包装器任务并安排它。我不想将命令“do_this”和rake“do_this”耦合在一起。我对其他事情使用命令“dou_this”。当然,我可以用这两者创建一个命令“do_something_other”,但我只想知道是否可以用where在命令之间执行logican。首先,您希望单独使用其中一个rake任务的论点在这里并不适用,因为这两个任务是逻辑耦合的。回答你的第二句话,因为只要打印一个crontab命令,cron就不支持逻辑and,不,这是不可能的。