dynamodb-sidekiq-scheduler 0.0.1 → 0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sidekiq-scheduler/version.rb +1 -1
- data/lib/sidekiq-scheduler/web.rb +14 -7
- data/web/views/recurring_job.erb +20 -12
- metadata +4 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69eeed67230490a8eadbce9bbb18336e24332756f270f1a7df5b203b23876095
|
4
|
+
data.tar.gz: 5694659a15a3f59b86e43089d9330c2e249d20670fb9c4d07d41d11c21670b2e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a87ef258b8a40ad07ad9ba4fc911dda0736e4a75ae3c5722e03264169367ef5c67468b6365f5a79e4d06ca5d57a99fddbc69fdbe5f6f6f9871ad2a1ef52b86e3
|
7
|
+
data.tar.gz: 1ef25e68c5a7bdd4c530f44a56fb5940a8410337902410ef1bc7ed4777eae4a027ec5f93df2677ea87e6a463beb4eb99f8ec512748d96658125c601d1e3fce81
|
@@ -46,7 +46,7 @@ module SidekiqScheduler
|
|
46
46
|
|
47
47
|
dynamo_clas_name = ENV.fetch('SIDEKIQ_SCHEDUER_DYNAMOID_CLASS', 'ScheduleRule')
|
48
48
|
klass = dynamo_clas_name.constantize
|
49
|
-
sr = klass.where(
|
49
|
+
sr = klass.where(job_name: params[:name]).first
|
50
50
|
if sr.present?
|
51
51
|
sr.destroy
|
52
52
|
else
|
@@ -60,24 +60,29 @@ module SidekiqScheduler
|
|
60
60
|
@title = 'Recurring Job Update'
|
61
61
|
@form_action = "#{root_path}recurring-jobs/#{ERB::Util.url_encode(params[:name])}/update"
|
62
62
|
@existing_rule = true
|
63
|
-
@
|
64
|
-
@config = Sidekiq.get_schedule(params[:name])
|
63
|
+
@presented_job = JobPresenter.new(params[:name], Sidekiq.get_schedule(params[:name]))
|
65
64
|
erb File.read(File.join(VIEW_PATH, 'recurring_job.erb'))
|
66
65
|
end
|
67
66
|
|
68
67
|
app.post '/recurring-jobs/new' do
|
69
68
|
@title = 'New Recurring Job'
|
69
|
+
@presented_job = JobPresenter.new('', {})
|
70
70
|
@existing_rule = false
|
71
71
|
@form_action = "#{root_path}recurring-jobs/create"
|
72
|
-
@name = ''
|
73
|
-
@config = { queue: 'default', enabled: false }
|
74
72
|
erb File.read(File.join(VIEW_PATH, 'recurring_job.erb'))
|
75
73
|
end
|
76
74
|
|
77
75
|
app.post '/recurring-jobs/:name/update' do
|
78
76
|
dynamo_clas_name = ENV.fetch('SIDEKIQ_SCHEDUER_DYNAMOID_CLASS', 'ScheduleRule')
|
79
77
|
klass = dynamo_clas_name.constantize
|
80
|
-
|
78
|
+
config = params.slice(*%w[worker_class description cron queue args]).transform_values(&:presence)
|
79
|
+
sr = klass.where(job_name: params[:name]).first
|
80
|
+
if sr.present?
|
81
|
+
config.each { |k, v| sr.send "#{k}=", v}
|
82
|
+
sr.save!
|
83
|
+
else
|
84
|
+
klass.create config.merge(job_name: params[:name])
|
85
|
+
end
|
81
86
|
|
82
87
|
Sidekiq.reload_schedule!
|
83
88
|
redirect "#{root_path}recurring-jobs"
|
@@ -86,7 +91,9 @@ module SidekiqScheduler
|
|
86
91
|
app.post '/recurring-jobs/create' do
|
87
92
|
dynamo_clas_name = ENV.fetch('SIDEKIQ_SCHEDUER_DYNAMOID_CLASS', 'ScheduleRule')
|
88
93
|
klass = dynamo_clas_name.constantize
|
89
|
-
|
94
|
+
config = params.slice(*%w[job_name worker_class description cron queue args])
|
95
|
+
.transform_values(&:presence)
|
96
|
+
klass.create config
|
90
97
|
|
91
98
|
Sidekiq.reload_schedule!
|
92
99
|
redirect "#{root_path}recurring-jobs"
|
data/web/views/recurring_job.erb
CHANGED
@@ -2,16 +2,24 @@
|
|
2
2
|
|
3
3
|
<form action="<%= @form_action %>"
|
4
4
|
method="post" class="recurring-job" style="background-color:white;">
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
5
|
+
<%= csrf_tag %>
|
6
|
+
<div style="padding: 20px;">
|
7
|
+
<label for="job_name">Job name:</label><br>
|
8
|
+
<input <%= @existing_rule ? 'disabled' : 'required' %> required name='job_name' type="text"
|
9
|
+
value="<%= @presented_job.name %>" style='width:50%;'/><br>
|
10
|
+
<label for="worker_class" style="padding-top: 10px;">Worker Class:</label><br>
|
11
|
+
<input name='worker_class' required type="text" value="<%= @presented_job['class'] %>" style='width:50%'/><br>
|
12
|
+
<label for="description" style="padding-top: 10px;">Description:</label><br>
|
13
|
+
<input name='description' type="text" value="<%= @presented_job['description'] %>" style='width:50%'/><br>
|
14
|
+
<label for="cron" style="padding-top: 10px;">Cron Rule:</label><br>
|
15
|
+
<input name='cron' type="text" value="<%= @presented_job['cron'] %>" style='width:50%'/><br>
|
16
|
+
<label for="queue" style="padding-top: 10px;">Queue:</label><br>
|
17
|
+
<input name='queue' type="text" value="<%= @presented_job['queue'] %>" style='width:50%'/><br>
|
18
|
+
<label for="args" style="padding-top: 10px;">Args:</label><br>
|
19
|
+
<input name='args' type="text" value="<%= @presented_job['args'] %>" style='width:50%'/><br><br>
|
20
|
+
|
21
|
+
<a href="<%= root_path %>recurring-jobs" class="btn btn-warn btn-xs"><%= t('cancel') %></a>
|
22
|
+
<input type="submit" class="btn btn-warn btn-xs" value="<%= @existing_rule ? t('update') : t('create') %>"/><br>
|
23
|
+
<a></a>
|
24
|
+
</div>
|
17
25
|
</form>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dynamodb-sidekiq-scheduler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.2'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Morton Jonuschat
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-
|
13
|
+
date: 2023-03-16 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: sidekiq
|
@@ -242,15 +242,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
242
242
|
requirements:
|
243
243
|
- - ">="
|
244
244
|
- !ruby/object:Gem::Version
|
245
|
-
version: '2.
|
245
|
+
version: '2.7'
|
246
246
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
247
247
|
requirements:
|
248
248
|
- - ">="
|
249
249
|
- !ruby/object:Gem::Version
|
250
250
|
version: '0'
|
251
251
|
requirements: []
|
252
|
-
|
253
|
-
rubygems_version: 2.7.6.2
|
252
|
+
rubygems_version: 3.1.6
|
254
253
|
signing_key:
|
255
254
|
specification_version: 4
|
256
255
|
summary: Light weight job scheduling extension for Sidekiq
|