限制 rake 任务的实例
有没有办法限制 rake 任务的实例数量?
我有一个用于阅读电子邮件的 rake 任务,该任务作为 cron 作业每 5 分钟运行一次。
有时,rake 任务需要 5 分钟以上才能完成,而另一个 rake 任务在完成之前启动。
有一些 hacky 解决方法可以检查 rake 文件内的 ps -Af
但我 我正在寻找更清洁的方法来限制启动多个实例 rake 任务类似于守护进程 gem 的工作方式。
检查电子邮件只是一个例子,我有几个这样的 rake 任务,涉及 轮询多个服务器。
Is there a way to limit the number of instances of a rake task?
I have a rake task for reading emails that runs every 5 mins as a cron job.
Sometimes the rake tasks takes more than 5 mins to complete and another
rake task is launched before it finishes.
There are hacky workarounds to check ps -Af
inside the rake file but I
am looking for cleaner way to limit launching multiple instances of the
rake tasks similar to how the daemon gem does.
Checking emails is just an example, I have several such rake tasks that involve
polling multiple servers.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您也可以只使用 PidFile。
首先,安装“pidfile”gem。然后让你的任务像这样:
You could also just use a PidFile.
First, install the 'pidfile' gem. Then make your task like this:
仍然找不到超级优雅的方法,所以我诉诸于保存一个独特的文件
每个耙子任务。
这就是 rake 任务现在的样子 -
这里是 run_unique_rake
仍然希望 rake 中有一种优雅的方式来限制单个实例。
Still can't find a super elegant way, so I resorted to saving a unique file for
each rake task.
This is how the rake task looks now -
here is run_unique_rake
Still hoping for an elegant way within rake to limit to a single instance.