Как убить спасателей на Героку? - PullRequest
4 голосов
/ 24 июля 2011

Я использую это руководство для настройки Resque с Redis http://blog.redistogo.com/2010/07/26/resque-with-redis-to-go/

У меня все настроено, и когда я что-то добавляю, оно появляется в моей очереди восстановления.Это на героку, так что тогда я запускаю

heroku rake resque:work QUEUE=*
(in /app)
Starting the New Relic Agent.
Installed New Relic Browser Monitoring middleware
Connected to NewRelic Service at collector-1.newrelic.com:80
^C
[canceled]

Это затем завершает работу, но теперь рабочий все еще там.Как мне теперь удалить / убить работника?

У меня сейчас есть это 0 of 4 Workers Working Я хочу сделать так, чтобы после выполнения задач в очереди работник просто удалял себя.Как бы я продолжил делать это или есть еще одна команда терминала heroku, которую мне нужно вызвать.

Кроме того, стоят ли работники спасения за герою?Я просто хочу сделать так, чтобы я мог вручную запускать задачи в моей очереди Resque.Мне не нужно, чтобы это делалось автоматически.

Ответы [ 4 ]

9 голосов
/ 07 октября 2012

Я знаю, что это старый вопрос, но вы можете сделать это из консоли:

$ heroku run console
irb(main):001:0> Resque.working[0].id
=> "09ec127d-bb90-4629-a6f2-bb2610885ab5:62:*"
irb(main):002:0> Resque.working.length
=> 28
irb(main):003:0> Resque.remove_worker("09ec127d-bb90-4629-a6f2-bb2610885ab5:62:*")
=> 0
irb(main):004:0> Resque.working.length
=> 27
irb(main):005:0> 

Я еще не пробовал, но есть также гем для этого вручную , похоже, вы хотите автоматизировать его.

3 голосов
/ 11 августа 2011

Чтобы интегрироваться с работниками героку, вам нужно выполнить грабли, называемые заданиями: работа.Чтобы это работало с resque, вам нужно добавить следующее задание в файл rake (взято из http://blog.redistogo.com/2010/07/26/resque-with-redis-to-go/):

require 'resque/tasks'

task "resque:setup" => :environment do
  ENV['QUEUE'] = '*'
end

desc "Alias for resque:work (To run workers on Heroku)"
task "jobs:work" => "resque:work"

Чтобы запустить одного работника на heroku, используйте:

? heroku workers 1

Чтобы отключить фоновых рабочих, выполните:

? heroku workers 0

Чтобы использовать 5 рабочих, выполните:

? heroku workers 5

Heroku выставляет вам счет на секунду за каждого работника, которого вы запускаете.Вы сможете увидеть, сколько будет стоить ваше текущее количество работников, на странице ресурсов для вашего приложения.

1 голос
/ 10 апреля 2012

В стеке Heroku Cedar это довольно просто, это команда, чтобы изменить количество рабочих на n, вы бы запустили эту команду, и она убила бы / создала рабочих, чтобы достичь n.

heroku ps:scale worker=n --app your-app-name

См. Эту статью в Heroku для более подробной информации: https://devcenter.heroku.com/articles/scaling

0 голосов
/ 31 августа 2011

Вы пробовали HireFire ?

Он разработан специально для увеличения / уменьшения рабочих Resque (и отложенной работы) на Heroku.

...