Skip to content

Commit d0cc274

Browse files
committed
don't auto start litejob in Rails unless the adapter is intiaialized, fixes #126
1 parent 8b4061b commit d0cc274

File tree

3 files changed

+29
-40
lines changed

3 files changed

+29
-40
lines changed

lib/active_job/queue_adapters/litejob_adapter.rb

+12-12
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,15 @@ module QueueAdapters
1313
#
1414
#
1515
# Rails.application.config.active_job.queue_adapter = :litejob
16+
1617
class LitejobAdapter
17-
def initialize(options = {})
18-
# we currently don't honour individual options per job class
19-
# possible in the future?
20-
# Job.options = DEFAULT_OPTIONS.merge(options)
21-
end
2218

23-
def enqueue_after_transaction_commit?
24-
Job.options[:enqueue_after_transaction_commit]
25-
end
19+
# we currently don't honour individual options per job class
20+
# possible in the future?
21+
# Job.options = DEFAULT_OPTIONS.merge(options)
22+
def initialize(options = {}) = Job.get_jobqueue
23+
24+
def enqueue_after_transaction_commit? = Job.options[:enqueue_after_transaction_commit]
2625

2726
def enqueue(job) # :nodoc:
2827
Job.queue = job.queue_name
@@ -36,17 +35,18 @@ def enqueue_at(job, time) # :nodoc:
3635
end
3736

3837
class Job # :nodoc:
38+
3939
DEFAULT_OPTIONS = {
4040
config_path: "./config/litejob.yml",
4141
logger: nil, # Rails performs its logging already
4242
enqueue_after_transaction_commit: true
4343
}
44-
44+
# ensure litejob is not started unless the LitejobAdapter is initialized
45+
def self.defer_litejob_start? = true
4546
include ::Litejob
4647

47-
def perform(job_data)
48-
Base.execute job_data
49-
end
48+
def perform(job_data) = Base.execute job_data
49+
5050
end
5151
end
5252
end

lib/litestack.rb

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
require_relative "litestack/version"
55
require_relative "litestack/litescheduler"
66
require_relative "litestack/litesupport"
7+
8+
# auto load each of thease when/if needed
79
require_relative "litestack/litemetric"
810
require_relative "litestack/litedb"
911
require_relative "litestack/litecache"

lib/litestack/litejob.rb

+15-28
Original file line numberDiff line numberDiff line change
@@ -41,40 +41,30 @@
4141
module Litejob
4242
def self.included(klass)
4343
klass.extend(ClassMethods)
44-
klass.get_jobqueue
44+
klass.get_jobqueue unless klass.defer_litejob_start?
4545
end
4646

4747
module ClassMethods
48-
def perform_async(*params)
49-
get_jobqueue.push(name, params, 0, queue)
50-
end
5148

52-
def perform_at(time, *params)
53-
delay = time.to_i - Time.now.to_i
54-
get_jobqueue.push(name, params, delay, queue)
55-
end
49+
def perform_async(*params) = get_jobqueue.push(name, params, 0, queue)
5650

57-
def perform_in(delay, *params)
58-
get_jobqueue.push(name, params, delay, queue)
59-
end
51+
def perform_at(time, *params) = get_jobqueue.push(name, params, time.to_i - Time.now.to_i, queue)
6052

61-
def perform_after(delay, *params)
62-
perform_in(delay, *params)
63-
end
53+
def perform_in(delay, *params) = get_jobqueue.push(name, params, delay, queue)
6454

65-
def process_jobs
66-
get_jobqueue
67-
end
55+
def perform_after(delay, *params) = perform_in(delay, *params)
6856

69-
def delete(id)
70-
get_jobqueue.delete(id)
71-
end
57+
def process_jobs = get_jobqueue
7258

73-
def queue
74-
@queue_name ||= "default"
75-
end
59+
def delete(id) = get_jobqueue.delete(id)
7660

77-
def queue=(queue_name)
61+
def queue = @queue_name ||= "default"
62+
63+
def get_jobqueue = Litejobqueue.jobqueue(options)
64+
65+
def defer_litejob_start? = false
66+
67+
def queue=(queue_name)
7868
@queue_name = queue_name.to_s
7969
end
8070

@@ -85,9 +75,6 @@ def options
8575
{}
8676
end
8777
end
88-
89-
def get_jobqueue
90-
Litejobqueue.jobqueue(options)
91-
end
78+
9279
end
9380
end

0 commit comments

Comments
 (0)