Module: Pegasus::Service::InstanceMethods
- Included in:
- Pegasus::Service
- Defined in:
- lib/pegasus/service/instance_methods.rb
Instance Method Summary collapse
- #do_eval(x) ⇒ Object
- #do_noop ⇒ Object
- #play ⇒ Object
- #run_task(taskspec = nil) ⇒ Object (also: #call)
Instance Method Details
#do_eval(x) ⇒ Object
35 36 37 |
# File 'lib/pegasus/service/instance_methods.rb', line 35 def do_eval x logger.info "#{self.class.name} eval: #{eval x}" end |
#do_noop ⇒ Object
31 32 33 |
# File 'lib/pegasus/service/instance_methods.rb', line 31 def do_noop logger.info "#{self.class.name} NOOP" end |
#play ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/pegasus/service/instance_methods.rb', line 39 def play while next_task = lpop(wait_queue_key) run_task next_task did_something = true end did_something end |
#run_task(taskspec = nil) ⇒ Object Also known as: call
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/pegasus/service/instance_methods.rb', line 5 def run_task taskspec = nil taskspec or begin return unless pair = blpop(wait_queue_key, 10) taskspec = pair[1] end set processing_key, "#{Time.unix} #{taskspec}" queued_at, ticket_no, task_marshal = taskspec.split(' ', 3) args = serializer.load(task_marshal) logger.debug "running task #{args.inspect}" result = "-" begin send(*args) rescue Exception => e logger.error("ERROR running task #{taskspec.inspect}: #{e.}:: #{e.backtrace.join("\n\t")}") result = serializer.dump(e) raise e if raise_errors end unless ticket_no == '-' logger.debug "posting ticket #{ticket_no}" rpush ticket_no, result end set processing_key, Time.unix end |