每当 gem 每 2 秒不工作时

whenever gem is not working for every 2 seconds

我已经在 gem 为我的后端 crons 作业实施了它,当我尝试像

这样的事情时它运行良好
every 2.seconds do
  rake "my:rake:task"
end

我收到这个错误

`parse_time': Time must be in minutes or higher (ArgumentError)

我真的很想 运行 每隔几秒就执行一次这个任务,我该怎么做。

您不能使用 whenever gem 执行此操作。

在幕后,whenever gem 只是创建了一个 cron job。这些只能以每分钟.

的最小粒度进行配置

可以 做的是编写一个 shell 带有无限循环的脚本来运行您的任务,然后休眠 2 秒。但是,我建议不要这样做 - 运行 这经常让人感觉不对。可能有一种更清洁的方法,例如运行 您的代码作为 after_save 钩子?

你收到错误是因为 this

的原因

Cron 只允许至少一分钟。你可以做的是编写一个 shell 带有无限循环的脚本,运行 执行你的任务,然后休眠 2 秒。这样,您的任务将每 2 秒或多或少 运行,具体取决于任务本身需要多长时间。

听起来你确实在做一些你可能不应该做的事情

循环播放

while true ; do cd /home/myrailsapp && rake my:rake:task & ; sleep 2; done

或者 conrtab 看起来像这样

并在 /home/myrailsapp/rakescript.sh

cd /home/myrailsapp && rake my:rake:task

在 corntab 中

* * * * * /home/myrailsapp/rakescript.sh
* * * * * sleep 2; /home/myrailsapp/rakescript.sh
* * * * * sleep 4; /home/myrailsapp/rakescript.sh
* * * * * sleep 6; /home/myrailsapp/rakescript.sh

带有 rails 转轮的循环工作正常:

loop {
  Ball.update_all_positions
  sleep 2
}