本文介绍了在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





...和我的耙子 resque setup任务

  require'resque'
require'resque / tasks'
require' resque / scheduler / tasks'

#http://jademind.com/blog/posts/enable-immediate-log-messages-of-resque-workers/
命名空间:resque do
desc'初始化Resque环境'
任务设置::environment do
ENV ['QUEUE'] || ='*'
Resque.logger.level =记录器::信息
结束

任务scheduler_setup ::环境
结束

desc'别名:work'
task'jobs:work'=> 'resque:work'

以下是我的问题:


  1. 我需要在我的proc文件中使用Resque和Worker配置吗?

  2. 是否需要为调度程序分配一个dyno,工人?这意味着3个完整的dynos?

更新

发布我正在尝试。我们的目标是可以选择使用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

这将允许我们使用web dyno,直到我们想为全时间调度程序dynos付费。


After reviewing numerous guides I would like to confirm my setup. Right now my procfile looks like:

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

...and in Heroku:

...and my rake resque setup task:

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'

So here are my questions:

  1. Do I need both a Resque and a worker configuration in my procfile?
  2. Do I need to have a separate dyno for the scheduler and the worker? This means 3 total dynos?

Update

I came across this posting which I am giving a try https://grosser.it/2012/04/14/resque-scheduler-on-heroku-without-extra-workers/. The goal is to be able to optionally use the 2 free dynos for my web and workers and scheduler. Once the application grows I want to break them out into their own dynos.

解决方案

From the blog post I found

He mentioned to role with this now...

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

..and upgrade to this once we need more 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

This will allow us to use a web dyno until we want to pay for full time scheduler dynos.

这篇关于在Heroku上一起使用Resque,Puma和Scheduler的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-19 15:14