如何确保一次只运行一个耙子任务?
-
02-10-2019 - |
题
我想设置通过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}结束
不隶属于 StackOverflow