繁体   English   中英

生产中在Nginx和Unicorn上运行的Rails 3应用程序未更新

[英]Rails 3 app running on Nginx and Unicorn in production not updating

我的个人Rails应用程序有一个奇怪的问题。

对于一年多来我一直在运行它使用Nginx的,独角兽和RVM一个VPS,我不是最好的生产设置窗口,但希望开始变得越来越好于它,所以我跟着Ryan Bates的Railscast关于这个问题在这里它似乎运行了很长时间,但是最近我注意到,为了在添加新文章时刷新首页,我必须终止Unicorn Process,然后重新启动unicorn。

还有其他人遇到过这个问题吗? 如果是这样,我将如何纠正它?

新答案:

根据您的评论,这很可能不是Unicorn / Nginx问题,而仅仅是Rails在开发和生产之间切换的问题。 尝试在本地但以生产模式运行站点。

您很可能每次有人发布新文章时都会删除缓存。 如果流量很大,您将需要缓存,但是忘记重置缓存会导致您遇到的问题。

旧答案:

您是否使用capistrano? 有一套将独角兽与Capistrano结合使用的食谱。 他们有一个重新加载独角兽的任务:

https://github.com/sosedoff/capistrano-unicorn/blob/master/lib/capistrano-unicorn/capistrano_integration.rb#L103

在文档中提到了这一点:

http://unicorn.bogomips.org/SIGNALS.html

HUP-重新加载配置文件并正常重启所有工作进程。 如果“ preload_app”指令为false(默认设置),则工作程序在重新启动时还将获取所有应用程序代码更改。 如果“ preload_app”为true,则更改应用程序代码将无效;否则,将不起作用。 在这种情况下,必须使用USR2 + QUIT(请参见下文)加载较新的代码。 重新加载应用程序时,将调用Gem.refresh,以便应用程序的更新代码可以获取新安装的RubyGems。 不建议您在Unicorn运行时卸载应用程序依赖的库,因为重新生成的工作程序在无法加载已卸载的依赖项时可能会进入生成循环。

我应该早点回答这个问题,但被误认为是我被命名为试图检查当前日期的作用域,但是当我在做Time.now时,在模型中当前日期始终是与将当前日期/时间从控制器传递到示波器的预期效果完全不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM