是否可以免费在Heroku上运行延迟的工作?
我正试图delayed_job_active_record在Heroku 上使用.然而,它需要一个worker dyno,如果我把这个dyno打开全职,它会花钱.
我认为使用Unicorn并使其工作人员延迟工作而不是Heroku工作人员,在成功运行所有工作的同时不会花费任何成本.但是,Unicorn工作人员似乎并没有自动开始"工作".
我的Procfile中有以下内容.
web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
worker: bundle exec rake jobs:work
Run Code Online (Sandbox Code Playgroud)
和我的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|
# …Run Code Online (Sandbox Code Playgroud)