我在config.ru中的configure do块中有一些配置代码,其中包含以下内容:
scheduler = Rufus::Scheduler.new
scheduler.every '1h' do
# Run a cleanup job which should take place every hour
...
end
当我们在engineyard上部署sinatra应用程序时,默认情况下会在app master上生成rufus-scheduler线程,尽管我们希望它们在engineyard内的其他应用程序服务器上生成。如果没有在before_restart.rb中使用条件块,有没有一种好方法可以实现这一点?文档似乎没有涉及到这一点。
deploy / before_restart.rb:
if node[:name] == "app_instance_1"
scheduler.every '1h' do
# Run cleanup job
end
结束
scheduler.every块可能必须封装在rake任务中。 任何输入都表示赞赏。谢谢。
答案 0 :(得分:0)
有一个单独的迷你应用程序来执行计划,从主应用程序中删除计划。
OR
检查config.ru中的主机名:
Kernel.load('deploy/scheduling.rb') if node[:name] == "app_instance_1"
并从deploy / before_restart.rb
中删除条件OR
有很多方法给猫皮肤......
注意强>:
文档似乎没有涉及到这一点。
这是因为它与上下文有关。