在Heroku上一起使用Resque,Puma和Scheduler
在审查了许多指南之后,我想确认一下我的设置。 现在我的procfile看起来像:
web: bundle exec puma -C config/puma.rb config.ru resque: TERM_CHILD=1 RESQUE_TERM_TIMEOUT=10 QUEUES=* bundle exec rake resque:work worker: bundle exec rake resque:work COUNT=1 QUEUE=* scheduler: bundle exec rake resque:scheduler
……在Heroku :
…和我的rake resque设置任务 :
require 'resque' require 'resque/tasks' require 'resque/scheduler/tasks' # http://jademind.com/blog/posts/enable-immediate-log-messages-of-resque-workers/ namespace :resque do desc 'Initialize Resque environment' task setup: :environment do ENV['QUEUE'] ||= '*' Resque.logger.level = Logger::INFO end task scheduler_setup: :environment end desc 'Alias for resque:work' task 'jobs:work' => 'resque:work'
所以这是我的问题:
- 我的procfile中是否需要Resque和worker配置?
- 我是否需要为调度程序和工作人员分别设置一个dyno? 这意味着共有3个dynos?
更新
我遇到了这个post,我试试看https://grosser.it/2012/04/14/resque-scheduler-on-heroku-without-extra-workers/ 。 目标是能够为我的网络和工作人员和调度程序选择使用2个免费的dynos。 一旦应用程序增长,我想把它们分解成自己的dynos。
从我发现的博客文章
他现在提到了这个角色……
web: bundle exec puma -C config/puma.rb config.ru worker: bundle exe rake schedule_and_work COUNT=1 QUEUE=* TERM_CHILD=1 RESQUE_TERM_TIMEOUT=10
..一旦我们需要更多的dynos,就升级到这个……
web: bundle exec puma -C config/puma.rb config.ru resque: TERM_CHILD=1 RESQUE_TERM_TIMEOUT=10 QUEUES=* bundle exec rake resque:work worker: bundle exec rake resque:work scheduler: bundle exec rake resque:scheduler
这将允许我们使用网络dyno,直到我们想要支付全时调度器dynos。
- Heroku雪松没有升级到ruby-1.9.3
- Rails&Heroku:我们很抱歉,但出了点问题
- Heroku推送被拒绝,Ruby Version Changed Detected,找不到net-scp-1.0.6
- Rails / Postgres:“必须出现在GROUP BY子句中或用于聚合函数”
- carrierwave Excon :: Errors :: SocketError
- JavaScript没有在Heroku上加载但在本地工作
- 尝试访问heroku控制台时,“您无法访问该应用程序”
- 部署到Heroku后未加载更新的CSS样式表?
- 在Heroku Devise的生产模式中,符合要求的邮件无法发送