Puma服务器为什么不提取代码更改?

时间:2019-02-21 22:29:39

标签: ruby-on-rails ruby puma puma-dev

我正在为Rails应用程序运行本地puma服务器。

这在我的local_env.yml文件中

STAGING_URL: 'http://statrubytwotwo.test'

当服务器正在运行并且一切正常时,我可以按下URl。如果我使用Cntrl-C关闭服务器,然后点击服务器,它仍在运行。

要关闭服务器,我必须这样做

pkill -9 -f 'rb-fsevent|rails|spring|puma'

主要问题是我更改了代码。执行git add * --allgit commit -m "something here",然后通过bundle exec puma

启动服务器

服务器再次启动,但是看不到代码更改。 puma服务器正在运行旧代码?

更新====

我用以下方法杀死了所有人:

puma-dev -stop
pkill -9 -f 'rb-fsevent|rails|spring|puma'
pkill -USR1 puma-dev

我做了一个rails s,我看到了

Puma starting in single mode...
* Version 3.11.4 (ruby 2.3.1-p112), codename: Love Song
* Min threads: 0, max threads: 16
* Environment: staging
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop

我点击了https://stattwotwo.test网域并加载了它。

我打了http://localhost:3000但没找到

我点击了https://stattwotwo.test网域并加载了

无论我做什么,http://localhost:3000上都不会加载

我相信我还记得puma-dev是否会在域被击中时启动,即使该域已关闭(forman或pow)?无论哪种方式,重新启动时都不会使用新代码。

1 个答案:

答案 0 :(得分:0)

由于无法在评论中全部添加内容而添加为回复:

您需要找出正在使用的工具。我的猜测是puma-dev,您通过here

将其安装为后台进程

看看是否可以确认。

通常情况下,如果有2台服务器正在运行,则会发生冲突,但是该服务器运行在puma / rails默认值3000(默认运行bundle exec puma的端口)上(我认为呢?)

如果是这种情况,则您是在其他端口上启动新服务器,而旧服务器(从启动时开始运行旧的缓存代码)仍在运行。这就是为什么看不到更改的原因。

您可以确认以下几点:

  • 不执行bundle exec puma,不执行rails s并检查日志到屏幕上,看看是否存在:3000
  • 像以前一样杀死您的彪马,但是请访问您的URL并查看它是否仍在运行
  • 再次启动rails s,然后访问http://localhost:3000,看看在重新加载页面时代码是否发生更改。
  • 先执行puma-dev -stop,然后执行rails s,然后访问您的.test网址,看看它是否中断(这意味着puma-dev在后台运行)