mirasrael / daemons-rails

daemons gem integration into Rails 3 (based on rails_generator)
104 stars 36 forks source link

Daemons::Rails::Monitoring.statuses doesn't work in production #14

Open rickygu opened 11 years ago

rickygu commented 11 years ago

When I call Daemons::Rails::Monitoring.statuses in development, it works fine, but on my production server, it returns not_exists even though the daemons are running.

hospital-systems commented 11 years ago

Do you have only one production server and are daemons running on same machine as application?

rickygu commented 11 years ago

yes, only 1 production server

hospital-systems commented 11 years ago

Ok. Can you describe layout for your daemons? (i.e. lib/daemons/ctl or app/daemons/ctl etc) What returns command bundle exec lib/daemons/<your_daemon_name>_ctl status on your production server? Are you sure your daemons are working well and doesn't crashes and restarts? And what is result of ruby code run from rails console - Daemons::Rails::Monitoring.default.controllers?

rickygu commented 11 years ago

daemons are in lib/daemons

bundle exec lib/daemons/_ctl status -> daemon.rb: running [pid 6334] daemons are working for sure because otherwise my app wouldn't be working.

Daemons::Rails::Monitoring.default.controllers works fine in console production, but when i do

<%= Daemons::Rails::Monitoring.statuses["daemons.rb"] %> in the view it return "not_exists".

hospital-systems commented 11 years ago

Is it behave same if you set instance variable in controller and then display in view? Also, it may be result of page caching and actually you see old version of page when daemons not yet run. So, try to add timestamp to this page - will it change on reload? It it will not help - it may be helpful if you create simplest not working version of application and send me by email or share through github. I just checked your use case and it works for me, so I need more details to find problem.

rickygu commented 11 years ago

just tried setting the instance variable in the controller but no dice. still shows not_exists when the daemons are clearly running. I'm using Rails 4.0.0 and daemons-rails (1.2.1) and ruby 2.0.0p247.

oh another piece of info, I had to comment out this line in my daemon or it wouldn't start. I don't know if that has anything to do with this problem:

ENV["RAILS_ENV"] ||= "production"

ACPK commented 10 years ago

@rickygu @hospital-systems Did you get this fixed? I'm having the same issue when deploying to a Digital Ocean VPS running Dokku.