Sneakers知识笔记

1.使用rake启动Sneakers

RAILS_ENV=production bundle exec rake sneakers:run

这个rake任务在gems/sneakers/lib/sneakers/tasks.rb中定义,执行这个任务会创建一个后台守护进程(可以通过daemonize参数控制。)

2. 关于Sneakers worker

sneaker worker是一个plain ruby object class。每个worker 都include Sneakers::Worer。Sneakers::Worer 提供了一些钩子方法和回调方法。

worker中主要的一个回调就是work方法,work方法是处理消息的入口


class SynUcDepartmentWorker
include Sneakers::Worker

from_queue(rabbitmq_queue_name,{
vhost: rabbitmq_queue_vhost,
exchange: rabbitmq_queue_exchange,
routing_key: rabbitmq_queue_routing_key,
exchange_options: { type: rabbitmq_queue_type, durable: true },
queue_options: {durable: true}
})

def work(rabbitmq_queue_message)
deal_with rabbitmq_queue_
ack! #或者等价true的值
end
end

注意 work 必须返回 ack! 或等价true的值。这样才会处理下一批消息,否则worker会停止执行。

 

发表评论