是否有可能在Heroku上免費延期工作?在Heroku上免費延期工作
我試圖在Heroku上使用delayed_job_active_record
。然而,它需要一個worker dyno
,如果我把這個測功機全部開啓,這將會花錢。
我以爲使用獨角獸,並讓其工作人員運行延遲工作,而不是Heroku工人,在成功運行所有工作的同時,不會花費任何代價。然而,獨角獸的工人似乎並不自動開始「工作」。
我在Procfile以下。
web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
worker: bundle exec rake jobs:work
,並在下面我unicorn.rb
worker_processes 3
timeout 30
preload_app true
before_fork do |server, worker|
# Replace with MongoDB or whatever
if defined?(ActiveRecord::Base)
ActiveRecord::Base.connection.disconnect!
Rails.logger.info('Disconnected from ActiveRecord')
end
# If you are using Redis but not Resque, change this
if defined?(Resque)
Resque.redis.quit
Rails.logger.info('Disconnected from Redis')
end
sleep 1
end
after_fork do |server, worker|
# Replace with MongoDB or whatever
if defined?(ActiveRecord::Base)
ActiveRecord::Base.establish_connection
Rails.logger.info('Connected to ActiveRecord')
end
# If you are using Redis but not Resque, change this
if defined?(Resque)
Resque.redis = ENV['REDIS_URI']
Rails.logger.info('Connected to Redis')
end
end
延遲工作似乎只是當我縮放Heroku的工人從0到1 再次,是不是可以使用工作獨角獸的工人而不是Heroku的工人做延期工作?
我必須使用像workless
這樣的寶石在Heroku上免費運行延遲工作嗎? (reference)
我使用沒有工作的寶石。只有在需要時才能使用寶石來幫助激發員工,這應該沒有問題。它的作品是一顆寶石! ;-) – mjnissim 2013-08-11 12:30:01