首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指定要使用Sinatra运行rufus-scheduler的应用程序服务器

指定要使用Sinatra运行rufus-scheduler的应用程序服务器
EN

Stack Overflow用户
提问于 2014-12-30 08:22:52
回答 1查看 141关注 0票数 1

我在config.ru中的configure do块中有一些配置代码,它读取以下内容:

代码语言:javascript
复制
scheduler = Rufus::Scheduler.new
scheduler.every '1h' do
  # Run a cleanup job which should take place every hour
  ...
end

当我们在engineyard上部署sinatra应用程序时,默认情况下rufus-scheduler线程是在应用程序主服务器上产生的,尽管我们希望它们在engineyard内的其他应用程序服务器上产生。在before_restart.rb中没有条件块的情况下,有没有好的方法来实现这一点呢?文档似乎没有涉及到这一点。

部署/在_restart.rb之前:

代码语言:javascript
复制
if node[:name] == "app_instance_1" 
  scheduler.every '1h' do
    # Run cleanup job
  end 

结束

scheduler.every块可能必须封装在rake任务中。任何意见都是值得感谢的。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-12-30 08:43:47

有一个单独的小型应用程序来做调度,从你的主应用程序中删除调度。

检查config.ru中的主机名:

代码语言:javascript
复制
Kernel.load('deploy/scheduling.rb') if node[:name] == "app_instance_1"

并从deploy/before_restart.rb中删除条件

给猫剥皮的方法太多了。

便笺

文档似乎没有涉及到这一点。

这是因为它是如此依赖于上下文。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27697966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档