我想设置通过cron运行的耙子任务。这很容易,但是并不容易的是确保一次只运行该耙任务的一个副本。我想我可以在系统上使用PS检查,然后退出Rake Task,如果它已经运行,或者我可以执行延迟的作业结构,在此我将任务名称序列化并完成后,我将其删除,以形成DB,但是你们都推荐什么?

有帮助吗?

解决方案

Unix用PID文件解决了此问题。 PID文件位于 /var /run中,并包含程序进程ID。这是男人页面: http://fuse4bsd.creo.hu/localcgi/man-cgi.cgi?pidfile +3

您可能会发现它有点老式(我同意),但这是一种经常使用和经过验证的方法。

其他提示

您可以使用 https://rubygems.org/gems/only_one_rake, ,就像名称空间:Rails Desc“在线用户计数”仅_ONE_TASK:inline_user_count =>:环境循环{在线uperuser.count;睡眠1}结束

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top