相关疑难解决方法(0)

在Heroku上免费运行延迟的工作

是否可以免费在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)

ruby-on-rails heroku delayed-job

19
推荐指数
3
解决办法
1万
查看次数

标签 统计

delayed-job ×1

heroku ×1

ruby-on-rails ×1