Skip to content

Commit dfd561d

Browse files
committed
cleanup
1 parent 5dcf61e commit dfd561d

File tree

4 files changed

+24
-99
lines changed

4 files changed

+24
-99
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ sidekiq-crond adds itself into this start procedure and starts another thread wi
281281
sidekiq-crond is checking jobs to be enqueued every 30s by default, you can change it by setting:
282282

283283
```ruby
284-
Sidekiq.options[:poll_interval] = 10
284+
Sidekiq.options[:cron_check_interval] = 10
285285
```
286286

287287
sidekiq-crond is safe to use with multiple sidekiq processes or nodes. It uses a Redis sorted set to determine that only the first process who asks can enqueue scheduled jobs into the queue.

lib/sidekiq/crond/job.rb

+21-96
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class Job
1818

1919
DEFAULT_QUEUE_NAME = 'default'
2020

21-
attr_accessor :name, :cron, :description, :klass, :args, :message
21+
attr_accessor :name, :cron, :description, :klass, :klass_const, :args
2222
attr_reader :last_enqueue_time, :fetch_missing_args, :status
2323

2424
def initialize(input_args = {})
@@ -32,6 +32,11 @@ def initialize(input_args = {})
3232

3333
# get class from klass or class
3434
@klass = args['klass'] || args['class']
35+
@klass_const = begin
36+
Sidekiq::Crond::Support.constantize(@klass.to_s)
37+
rescue NameError
38+
nil
39+
end
3540

3641
# set status of job
3742
@status = args['status'] || status_from_redis
@@ -51,42 +56,16 @@ def initialize(input_args = {})
5156
@active_job_queue_name_prefix = args['queue_name_prefix']
5257
@active_job_queue_name_delimiter = args['queue_name_delimiter']
5358

54-
if args['message']
55-
@message = args['message']
56-
message_data = Sidekiq.load_json(@message) || {}
57-
@queue = message_data['queue'] || DEFAULT_QUEUE_NAME
58-
elsif @klass
59-
message_data = {
60-
'class' => @klass.to_s,
61-
'args' => @args
62-
}
63-
64-
# get right data for message
65-
# only if message wasn't specified before
66-
klass_data = case @klass
67-
when Class
68-
@klass.get_sidekiq_options
69-
when String
70-
begin
71-
Sidekiq::Crond::Support.constantize(@klass).get_sidekiq_options
72-
rescue StandardError => _e
73-
# Unknown class
74-
{ 'queue' => DEFAULT_QUEUE_NAME }
75-
end
76-
end
77-
78-
message_data = klass_data.merge(message_data)
79-
# override queue if setted in config
80-
# only if message is hash - can be string (dumped JSON)
81-
@queue = if args['queue']
82-
message_data['queue'] = args['queue']
83-
else
84-
message_data['queue'] || DEFAULT_QUEUE_NAME
85-
end
86-
87-
# dump message as json
88-
@message = message_data
89-
end
59+
klass_data = @klass.get_sidekiq_options
60+
# override queue if setted in config
61+
# only if message is hash - can be string (dumped JSON)
62+
@queue = if args['queue']
63+
args['queue']
64+
elsif @active_job
65+
klass_const.queue_name
66+
else
67+
klass_data['queue'] || DEFAULT_QUEUE_NAME
68+
end
9069

9170
@queue_name_with_prefix = queue_name_with_prefix
9271
end
@@ -123,31 +102,16 @@ def test_and_enque_for_time!(time)
123102
def enque!(time = Time.now.utc)
124103
@last_enqueue_time = time.strftime(LAST_ENQUEUE_TIME_FORMAT)
125104

126-
klass_const =
127-
begin
128-
Sidekiq::Crond::Support.constantize(@klass.to_s)
129-
rescue NameError
130-
nil
131-
end
132-
133105
jid =
134-
if klass_const
135-
if defined?(ActiveJob::Base) && klass_const < ActiveJob::Base
136-
enqueue_active_job(klass_const).try :provider_job_id
137-
else
138-
enqueue_sidekiq_worker(klass_const)
139-
end
106+
if defined?(ActiveJob::Base) && klass_const < ActiveJob::Base
107+
enqueue_active_job(klass_const).try :provider_job_id
140108
else
141-
if @active_job
142-
Sidekiq::Client.push(active_job_message)
143-
else
144-
Sidekiq::Client.push(sidekiq_worker_message)
145-
end
109+
enqueue_sidekiq_worker(klass_const)
146110
end
147111

148112
save_last_enqueue_time
149113
add_jid_history jid
150-
Sidekiq.logger.debug "enqueued #{@name}: #{@message}"
114+
Sidekiq.logger.debug "enqueued #{@name}: #{@args}"
151115
end
152116

153117
def active_job?
@@ -164,11 +128,6 @@ def enqueue_sidekiq_worker(klass_const)
164128
klass_const.set(queue: queue_name_with_prefix).perform_async(*@args)
165129
end
166130

167-
# siodekiq worker message
168-
def sidekiq_worker_message
169-
@message.is_a?(String) ? Sidekiq.load_json(@message) : @message
170-
end
171-
172131
def queue_name_with_prefix
173132
return @queue unless active_job?
174133

@@ -191,23 +150,6 @@ def queue_name_with_prefix
191150
queue_name
192151
end
193152

194-
# active job has different structure how it is loading data from sidekiq
195-
# queue, it createaswrapper arround job
196-
def active_job_message
197-
{
198-
'class' => 'ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper',
199-
'wrapped' => @klass,
200-
'queue' => @queue_name_with_prefix,
201-
'description' => @description,
202-
'args' => [{
203-
'job_class' => @klass,
204-
'job_id' => SecureRandom.uuid,
205-
'queue_name' => @queue_name_with_prefix,
206-
'arguments' => @args
207-
}]
208-
}
209-
end
210-
211153
def disable!
212154
@status = DISABLED_STATUS
213155
save
@@ -226,12 +168,6 @@ def disabled?
226168
!enabled?
227169
end
228170

229-
def pretty_message
230-
JSON.pretty_generate Sidekiq.load_json(message)
231-
rescue JSON::ParserError
232-
message
233-
end
234-
235171
def status_from_redis
236172
out = ENABLED_STATUS
237173
if fetch_missing_args
@@ -281,7 +217,6 @@ def to_hash
281217
cron: @cron,
282218
description: @description,
283219
args: @args.is_a?(String) ? @args : Sidekiq.dump_json(@args || []),
284-
message: @message.is_a?(String) ? @message : Sidekiq.dump_json(@message || {}),
285220
status: @status,
286221
active_job: @active_job,
287222
queue_name_prefix: @active_job_queue_name_prefix,
@@ -309,20 +244,10 @@ def valid?
309244
end
310245
end
311246

312-
@errors << "'klass' (or class) must be set" unless klass_valid?
313-
247+
@errors << "'klass' (or class) must be set and exist" if @klass_const.nil?
314248
errors.empty?
315249
end
316250

317-
def klass_valid?
318-
case @klass
319-
when Class
320-
true
321-
when String
322-
!@klass.empty?
323-
end
324-
end
325-
326251
# add job to cron jobs
327252
# input:
328253
# name: (string) - name of job

lib/sidekiq/crond/poller.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def enqueue_job(job, time = Time.now.utc)
3636
end
3737

3838
def poll_interval_average
39-
Sidekiq.options[:poll_interval] || POLL_INTERVAL
39+
Sidekiq.options[:cron_check_interval] || POLL_INTERVAL
4040
end
4141
end
4242
end

lib/sidekiq/crond/views/cron.erb

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737

3838
<tbody>
3939
<% @cron_jobs.sort{|a,b| a.sort_name <=> b.sort_name }.each_with_index do |job, index| %>
40-
<% style = "#{job.status == 'disabled' ? "background: #ecc": ""}" %>
40+
<% style = "#{job.disabled? ? "background: #ecc": ""}" %>
4141
<tr>
4242
<td style="<%= style %>"><%= t job.status %></td>
4343
<td style="<%= style %>">

0 commit comments

Comments
 (0)