我想设置 rake 任务以通过 cron 运行。这很容易,但不容易确保一次只运行该 rake 任务的一个副本。我想我可以在系统上使用 ps 来检查然后退出 rake 任务(如果它已经在运行),或者我可以做一个延迟的作业结构,在其中我序列化任务的名称,完成后我将它从数据库中删除,但是你们都推荐什么?
问问题
363 次
2 回答
0
Unix 用 pid 文件解决了这个问题。Pid 文件位于 /var/run 并包含程序进程 ID。这是手册页: http: //fuse4bsd.creo.hu/localcgi/man-cgi.cgi?pidfile+3
您可能会觉得它有点过时(我同意),但它是一种经常使用且经过验证的方法。
于 2010-09-10T19:25:58.587 回答
0
您可以使用https://rubygems.org/gems/only_one_rake,例如命名空间 :rails do desc "online user count" only_one_task :online_user_count => :environment do loop { OnlineUser.count; 睡眠 1 } 结束 结束
于 2013-01-14T06:00:17.333 回答