add possibility to embed a resque worker into the unicorn process

This commit is contained in:
Jonne Haß 2012-09-21 14:05:01 +02:00
parent 89c1fd5f7f
commit ce728f6b7b
3 changed files with 15 additions and 1 deletions

View file

@ -22,6 +22,8 @@ defaults:
region:
image_redirect_url:
pubsub_server: 'https://pubsubhubbub.appspot.com/'
unicorn:
embed_resque_worker: false
privacy:
jquery_cdn: true
google_analytics_key:

View file

@ -100,6 +100,10 @@ configuration:
## You likely don't want to change this.
#pubsub_server: 'https://pubsubhubbub.appspot.com/'
unicorn:
## Embed a resque worker inside the unicorn process, useful for
## minimal Heroku setups
#embed_resque_worker: true
## Settings probably affecting the privacy of your users
privacy:

View file

@ -12,6 +12,8 @@ preload_app true
# How long to wait before killing an unresponsive worker
timeout 30
@resque_pid = nil
#pid '/var/run/diaspora/diaspora.pid'
#listen '/var/run/diaspora/diaspora.sock', :backlog => 2048
@ -30,6 +32,12 @@ before_fork do |server, worker|
Resque.redis.client.disconnect
end
if AppConfig.environment.unicorn.embed_resque_worker?
# Clean up Resque workers killed by previous deploys/restarts
Resque.workers.each { |w| w.unregister_worker }
@resque_pid ||= spawn('bundle exec rake resque:work QUEUES=*')
end
old_pid = '/var/run/diaspora/diaspora.pid.oldbin'
if File.exists?(old_pid) && server.pid != old_pid
begin