2013-03-22 1 views
0

Я использую redis pub/sub, с помощью resque worker, resque зависает после первой работы, моя рабочая задача блокирует природу. Мое понимание - resque разворачивает новый поток для каждой новой работы.resque заблокирован рабочим заданием

мои рабочий ниже

class SendInvitation 
    @queue = :outbound_dialer 
    def self.perform(contact_type, contact_no, invitation_audio_file) 
    @invitationManager = DRbObject.new_with_uri(DRB_SERVER_URL) 

    task_id = @invitationManager.send_invitation(contact_type, contact_no, invitation_audio_file) 
    puts task_id+"is the currents task id" 
    $redis = Redis.new(:timeout=>REDIS_TIMEOUT) 
    $redis.subscribe('outbound_dialer') do |on| 
     on.message do |channel, msg| 
     data = JSON.parse(msg) 
     if(data['id'] == task_id) 
      puts 'here' 
      @invitationManager = nil 
      # exit 
     end 
     end 
    end 
    end 
end 

пса -ef привести

здесь поток 5784 блокирует Resque задачи, как только я убить текущую задачу обработки, Resque начать с следующей задачей, и снова начать ждать после завершения этого root 3595 1 0 14:14? 00:00:34 /usr/bin/ruby1.9.1/usr/local/bin/resque-web корень 5370 1887 0 15:40 pts/1 00:00:04 resque-2.0.0.pre.1: Forked 5784 at 1363947580 root 5784 5370 0 15:49 pts/1 00:00:00 resque-2.0.0.pre.1: Обработка outbound_dialer с 1363947580 [SendInvitation] root 5803 2140 0 15:49 pts/2 00:00 : 00 Grep --color = автоматическая спасательного

Я уже пробовал COUNT = 5

ответ

0

Resque действительно новый Сервер порождает процесс (не нитка) для работы. Затем он ждет, пока работник закончит и возьмет следующую работу. Если вы хотите, чтобы другие задания выполнялись параллельно, выполните больше рабочих процессов resque.

+0

так что количество = 5 предположительно. –

+0

Я понятия не имею, о чем вы говорите. –

+0

K Мое точное требование - обрабатывать асинхронные задания. Я хочу запустить их, как только они попадут в очередь. Я интегрировал resqueue, чтобы я мог эффективно обрабатывать неудавшиеся задания. Я использую правильный инструмент, или я должен смотреть на что-то еще. –

 Смежные вопросы

  • Нет связанных вопросов^_^