как начать работу с кроссовками RabbitMQ для потребителей, работающих с Rails - PullRequest
0 голосов
/ 31 августа 2018

У нас есть приложение на Rails 3.2, и мы хотели бы включить в него задание на кроссовки для написания длительных (несколько минут) отчетов, которые выполняются с помощью другого приложения. Похоже, мы можем нормально вызывать очередь (очередь называется report_queue) и будем прослушивать в другой очереди готовые задания под названием finished_report_queue.

Но сначала я просто пытаюсь заставить работать прослушивание report_queue.

У меня проблемы с выяснением, что мне нужно сделать, чтобы прослушать эту очередь. В настоящее время я имею в моих инициализаторах / sneakers.rb

require 'sneakers'

Sneakers.configure  daemonize: true,
                    amqp: "amqp://localhost",
                    log: "log/sneakers.log",
                    pid_path: "tmp/pids/sneakers.pid",
                    threads: 1,
                    workers: 1

и в приложении / работники / custom_report_worker:

class CustomReportWorker
  include Sneakers::Worker
  from_queue "report_queue", env: nil

  def work(raw_event)
    event_params = JSON.parse(raw_event)
    Rails.logger.info("withhin work!!!")
    Rails.logger.info(event_params)
    # binding.pry
    # SomeWiseService.build.call(event_params)
    ack!
  end
end

Что еще мне нужно сделать? Нужно ли запускать фоновый поток в config.ru?

...