У нас есть приложение на 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?