module TraceView::Inst::ResqueClient
Public Class Methods
included(klass)
click to toggle source
# File lib/traceview/inst/resque.rb, line 10 def self.included(klass) klass.send :extend, ::Resque ::TraceView::Util.method_alias(klass, :enqueue, ::Resque) ::TraceView::Util.method_alias(klass, :enqueue_to, ::Resque) ::TraceView::Util.method_alias(klass, :dequeue, ::Resque) end
Public Instance Methods
dequeue_with_traceview(klass, *args)
click to toggle source
# File lib/traceview/inst/resque.rb, line 69 def dequeue_with_traceview(klass, *args) if TraceView.tracing? report_kvs = extract_trace_details(:dequeue, klass, args) TraceView::API.trace(:'resque-client', report_kvs) do dequeue_without_traceview(klass, *args) end else dequeue_without_traceview(klass, *args) end end
enqueue_to_with_traceview(queue, klass, *args)
click to toggle source
# File lib/traceview/inst/resque.rb, line 56 def enqueue_to_with_traceview(queue, klass, *args) if TraceView.tracing? && !TraceView.tracing_layer_op?(:enqueue) report_kvs = extract_trace_details(:enqueue_to, klass, args) report_kvs[:Queue] = queue.to_s if queue TraceView::API.trace(:'resque-client', report_kvs) do enqueue_to_without_traceview(queue, klass, *args) end else enqueue_to_without_traceview(queue, klass, *args) end end
enqueue_with_traceview(klass, *args)
click to toggle source
# File lib/traceview/inst/resque.rb, line 44 def enqueue_with_traceview(klass, *args) if TraceView.tracing? report_kvs = extract_trace_details(:enqueue, klass, args) TraceView::API.trace(:'resque-client', report_kvs, :enqueue) do enqueue_without_traceview(klass, *args) end else enqueue_without_traceview(klass, *args) end end
extract_trace_details(op, klass, args)
click to toggle source
# File lib/traceview/inst/resque.rb, line 17 def extract_trace_details(op, klass, args) report_kvs = {} begin report_kvs[:Spec] = :pushq report_kvs[:Flavor] = :resque report_kvs[:JobName] = klass.to_s if TraceView::Config[:resqueclient][:log_args] kv_args = args.to_json # Limit the argument json string to 1024 bytes if kv_args.length > 1024 report_kvs[:Args] = kv_args[0..1023] + '...[snipped]' else report_kvs[:Args] = kv_args end end report_kvs[:Backtrace] = TraceView::API.backtrace if TraceView::Config[:resqueclient][:collect_backtraces] report_kvs[:Queue] = klass.instance_variable_get(:@queue) rescue => e TraceView.logger.debug "[traceview/debug] #{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.message}" if TraceView::Config[:verbose] end report_kvs end