From 1b71fe59b8cd6c7347729703c064b64866b3502e Mon Sep 17 00:00:00 2001 From: John DeSilva Date: Tue, 20 May 2014 00:56:08 +0200 Subject: Add Sneakers wrapper --- lib/active_job/queue_adapters/sneakers_adapter.rb | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 lib/active_job/queue_adapters/sneakers_adapter.rb (limited to 'lib/active_job') diff --git a/lib/active_job/queue_adapters/sneakers_adapter.rb b/lib/active_job/queue_adapters/sneakers_adapter.rb new file mode 100644 index 0000000000..be400dc477 --- /dev/null +++ b/lib/active_job/queue_adapters/sneakers_adapter.rb @@ -0,0 +1,24 @@ +require 'sneakers' + +module ActiveJob + module QueueAdapters + class SneakersAdapter + class << self + def queue(job, *args) + JobWrapper.enqueue([job, *args]) + end + end + + class JobWrapper + include Sneakers::Worker + + self.from_queue("queue", {}) + + def work(*args) + job_name = args.shift + job_name.new.perform *Parameters.deserialize(args) + end + end + end + end +end -- cgit v1.2.3 From fc062f6601f6dba5a449d2e7008840bba6cb02e6 Mon Sep 17 00:00:00 2001 From: zhouguangming Date: Tue, 20 May 2014 16:26:04 +0800 Subject: Make consistent code style --- lib/active_job/queue_adapters/sneakers_adapter.rb | 5 ++--- lib/active_job/queue_adapters/sucker_punch_adapter.rb | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'lib/active_job') diff --git a/lib/active_job/queue_adapters/sneakers_adapter.rb b/lib/active_job/queue_adapters/sneakers_adapter.rb index be400dc477..c6dbfa75bf 100644 --- a/lib/active_job/queue_adapters/sneakers_adapter.rb +++ b/lib/active_job/queue_adapters/sneakers_adapter.rb @@ -14,9 +14,8 @@ module ActiveJob self.from_queue("queue", {}) - def work(*args) - job_name = args.shift - job_name.new.perform *Parameters.deserialize(args) + def work(job, *args) + job.new.perform *Parameters.deserialize(args) end end end diff --git a/lib/active_job/queue_adapters/sucker_punch_adapter.rb b/lib/active_job/queue_adapters/sucker_punch_adapter.rb index 182b5ce018..6ca6726456 100644 --- a/lib/active_job/queue_adapters/sucker_punch_adapter.rb +++ b/lib/active_job/queue_adapters/sucker_punch_adapter.rb @@ -12,8 +12,8 @@ module ActiveJob class JobWrapper include SuckerPunch::Job - def perform(job_name, *args) - job_name.new.perform *Parameters.deserialize(args) + def perform(job, *args) + job.new.perform *Parameters.deserialize(args) end end end -- cgit v1.2.3 From 9b5562a4bfcab0e5634c46ba5b5831246d866e0c Mon Sep 17 00:00:00 2001 From: Douwe Maan Date: Tue, 20 May 2014 11:37:04 +0200 Subject: Determine full class name dynamically in QC adapter. --- lib/active_job/queue_adapters/queue_classic_adapter.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'lib/active_job') diff --git a/lib/active_job/queue_adapters/queue_classic_adapter.rb b/lib/active_job/queue_adapters/queue_classic_adapter.rb index e3392a646e..b82edae977 100644 --- a/lib/active_job/queue_adapters/queue_classic_adapter.rb +++ b/lib/active_job/queue_adapters/queue_classic_adapter.rb @@ -5,8 +5,7 @@ module ActiveJob class QueueClassicAdapter class << self def queue(job, *args) - qc_queue = QC::Queue.new(job.queue_name) - qc_queue.enqueue("ActiveJob::QueueAdapters::QueueClassicAdapter::JobWrapper.perform", job, *args) + QC::Queue.new(job.queue_name).enqueue("#{JobWrapper.name}.perform", job, *args) end end -- cgit v1.2.3 From 6d009504a02fecb822820e18abd69dd569f72e82 Mon Sep 17 00:00:00 2001 From: Abdelkader Boudih Date: Mon, 19 May 2014 18:09:45 +0000 Subject: Add Que Adapter/Wrapper --- lib/active_job/queue_adapters/que_adapter.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 lib/active_job/queue_adapters/que_adapter.rb (limited to 'lib/active_job') diff --git a/lib/active_job/queue_adapters/que_adapter.rb b/lib/active_job/queue_adapters/que_adapter.rb new file mode 100644 index 0000000000..6750882b91 --- /dev/null +++ b/lib/active_job/queue_adapters/que_adapter.rb @@ -0,0 +1,19 @@ +require 'que' + +module ActiveJob + module QueueAdapters + class QueAdapter + class << self + def queue(job, *args) + JobWrapper.enqueue job, *args, queue: job.queue_name + end + end + + class JobWrapper < Que::Job + def run(job, *args) + job.new.perform *Parameters.deserialize(args) + end + end + end + end +end -- cgit v1.2.3 From fa478329507319571b578ea3dd883405d0b8d4fc Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 20 May 2014 12:05:26 +0200 Subject: No need for the local variable --- lib/active_job/queue_adapter.rb | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'lib/active_job') diff --git a/lib/active_job/queue_adapter.rb b/lib/active_job/queue_adapter.rb index 2033f6fe56..0f510530a6 100644 --- a/lib/active_job/queue_adapter.rb +++ b/lib/active_job/queue_adapter.rb @@ -6,14 +6,13 @@ module ActiveJob mattr_reader(:queue_adapter) { ActiveJob::QueueAdapters::InlineAdapter } def queue_adapter=(name_or_adapter) - case name_or_adapter - when Symbol, String - adapter = load_adapter(name_or_adapter) - else - adapter = name_or_adapter - end - - @@queue_adapter = adapter + @@queue_adapter = \ + case name_or_adapter + when Symbol, String + load_adapter(name_or_adapter) + else + name_or_adapter + end end private -- cgit v1.2.3 From 9c8c6bf4390a60be15fa69dfdd682f82e8639bc7 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 20 May 2014 12:06:59 +0200 Subject: Clarify that the other option for name_or_adapter is to be a class (the Adapter class) --- lib/active_job/queue_adapter.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/active_job') diff --git a/lib/active_job/queue_adapter.rb b/lib/active_job/queue_adapter.rb index 0f510530a6..8f2f8b86ea 100644 --- a/lib/active_job/queue_adapter.rb +++ b/lib/active_job/queue_adapter.rb @@ -10,7 +10,7 @@ module ActiveJob case name_or_adapter when Symbol, String load_adapter(name_or_adapter) - else + when Class name_or_adapter end end -- cgit v1.2.3 From 0227af92b1851d5eac4cb423dc0c9935dbc733a3 Mon Sep 17 00:00:00 2001 From: Cristian Bica Date: Tue, 20 May 2014 14:41:14 +0300 Subject: Added logging capabilities --- lib/active_job/base.rb | 5 ++++- lib/active_job/enqueuing.rb | 1 + lib/active_job/log_subscriber.rb | 19 +++++++++++++++++++ lib/active_job/logging.rb | 5 +++++ 4 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 lib/active_job/log_subscriber.rb create mode 100644 lib/active_job/logging.rb (limited to 'lib/active_job') diff --git a/lib/active_job/base.rb b/lib/active_job/base.rb index 77b929d4af..ed402bd8d3 100644 --- a/lib/active_job/base.rb +++ b/lib/active_job/base.rb @@ -1,11 +1,14 @@ require 'active_job/queue_adapter' require 'active_job/queue_name' require 'active_job/enqueuing' +require 'active_job/logging' +require 'active_job/log_subscriber' module ActiveJob class Base extend QueueAdapter extend QueueName extend Enqueuing + extend Logging end -end \ No newline at end of file +end diff --git a/lib/active_job/enqueuing.rb b/lib/active_job/enqueuing.rb index 324385216e..46f703481a 100644 --- a/lib/active_job/enqueuing.rb +++ b/lib/active_job/enqueuing.rb @@ -11,6 +11,7 @@ module ActiveJob # The return value is adapter-specific and may change in a future # ActiveJob release. def enqueue(*args) + ActiveSupport::Notifications.instrument "enqueue.active_job", adapter: queue_adapter, job: self, params: args queue_adapter.queue self, *Parameters.serialize(args) end end diff --git a/lib/active_job/log_subscriber.rb b/lib/active_job/log_subscriber.rb new file mode 100644 index 0000000000..81859d8da1 --- /dev/null +++ b/lib/active_job/log_subscriber.rb @@ -0,0 +1,19 @@ +module ActiveJob + class LogSubscriber < ActiveSupport::LogSubscriber + + def enqueue(event) + payload = event.payload + params = payload[:params] + adapter = payload[:adapter] + job = payload[:job] + + info "ActiveJob enqueued to #{adapter.name.demodulize} job #{job.name}: #{params.inspect}" + end + + def logger + ActiveJob::Base.logger + end + end +end + +ActiveJob::LogSubscriber.attach_to :active_job diff --git a/lib/active_job/logging.rb b/lib/active_job/logging.rb new file mode 100644 index 0000000000..7bd77b7ca5 --- /dev/null +++ b/lib/active_job/logging.rb @@ -0,0 +1,5 @@ +module ActiveJob + module Logging + mattr_accessor(:logger) { ActiveSupport::Logger.new(STDOUT) } + end +end -- cgit v1.2.3 From a2650112d9971460b257dbe6d440e1641226a11e Mon Sep 17 00:00:00 2001 From: Cristian Bica Date: Tue, 20 May 2014 17:02:36 +0300 Subject: Moved log_subcriber dependency and cleanup --- lib/active_job/base.rb | 1 - lib/active_job/log_subscriber.rb | 1 - lib/active_job/logging.rb | 2 ++ 3 files changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/active_job') diff --git a/lib/active_job/base.rb b/lib/active_job/base.rb index ed402bd8d3..3d16f38275 100644 --- a/lib/active_job/base.rb +++ b/lib/active_job/base.rb @@ -2,7 +2,6 @@ require 'active_job/queue_adapter' require 'active_job/queue_name' require 'active_job/enqueuing' require 'active_job/logging' -require 'active_job/log_subscriber' module ActiveJob class Base diff --git a/lib/active_job/log_subscriber.rb b/lib/active_job/log_subscriber.rb index 81859d8da1..31c61a6068 100644 --- a/lib/active_job/log_subscriber.rb +++ b/lib/active_job/log_subscriber.rb @@ -1,6 +1,5 @@ module ActiveJob class LogSubscriber < ActiveSupport::LogSubscriber - def enqueue(event) payload = event.payload params = payload[:params] diff --git a/lib/active_job/logging.rb b/lib/active_job/logging.rb index 7bd77b7ca5..0e994a8f54 100644 --- a/lib/active_job/logging.rb +++ b/lib/active_job/logging.rb @@ -1,3 +1,5 @@ +require 'active_job/log_subscriber' + module ActiveJob module Logging mattr_accessor(:logger) { ActiveSupport::Logger.new(STDOUT) } -- cgit v1.2.3