dynamodb-sidekiq-scheduler 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,28 @@
1
+ require 'sidekiq'
2
+ require 'tilt/erb'
3
+
4
+ require_relative 'sidekiq/scheduler'
5
+ require_relative 'sidekiq-scheduler/version'
6
+ require_relative 'sidekiq-scheduler/manager'
7
+ require_relative 'sidekiq-scheduler/redis_manager'
8
+ require_relative 'sidekiq-scheduler/config'
9
+ require_relative 'sidekiq-scheduler/extensions/schedule'
10
+ require_relative 'sidekiq-scheduler/sidekiq_adapter'
11
+
12
+ Sidekiq.configure_server do |config|
13
+
14
+ config.on(:startup) do
15
+ # schedules_changed's type was changed from SET to ZSET, so we remove old versions at startup
16
+ SidekiqScheduler::RedisManager.clean_schedules_changed
17
+
18
+ scheduler_config = SidekiqScheduler::Config.new(sidekiq_config: config)
19
+
20
+ schedule_manager = SidekiqScheduler::Manager.new(scheduler_config)
21
+ SidekiqScheduler::SidekiqAdapter.start_schedule_manager(sidekiq_config: config, schedule_manager: schedule_manager)
22
+ end
23
+
24
+ config.on(:quiet) do
25
+ SidekiqScheduler::SidekiqAdapter.stop_schedule_manager(sidekiq_config: config)
26
+ end
27
+
28
+ end
@@ -0,0 +1,42 @@
1
+ .recurring-jobs { border-top-left-radius: 4px; border-top-right-radius: 4px; }
2
+ .recurring-jobs .title { margin-bottom: 5px; }
3
+ .recurring-jobs .title .name { font-weight: bold;}
4
+ .recurring-jobs .info,
5
+ .recurring-jobs .description { margin-bottom: 5px; }
6
+ .recurring-jobs .actions { margin-bottom: 5px; }
7
+ .recurring-jobs .status,
8
+ .recurring-jobs .description { font-size: 12px; }
9
+ .recurring-jobs .enqueue { margin-bottom: 0.5rem }
10
+
11
+ .list-group-item {
12
+ background-color: #f3f3f3;
13
+ color: #585454;
14
+ border: 1px solid rgba(0, 0, 0, 0.1);
15
+ }
16
+
17
+ .list-group-item-disabled {
18
+ background-color: #f3d3d3;
19
+ }
20
+
21
+ @media (prefers-color-scheme: dark) {
22
+ .list-group-item {
23
+ background-color: #222;
24
+ color: white;
25
+ border: 1px solid #555;
26
+ }
27
+ }
28
+
29
+ .toggle-all-buttons {
30
+ margin-top: 20px;
31
+ margin-bottom: 10px;
32
+ line-height: 45px;
33
+ text-align: right;
34
+ }
35
+
36
+ @media (max-width: 768px) {
37
+ .toggle-all-buttons {
38
+ margin-top: 0;
39
+ text-align: left;
40
+ line-height: inherit;
41
+ }
42
+ }
@@ -0,0 +1,14 @@
1
+ cs:
2
+ recurring_jobs: Pravidelně opakované
3
+ name: Jméno
4
+ description: Popis
5
+ interval: Interval
6
+ class: Třída
7
+ queue: Fronta
8
+ arguments: Argumenty
9
+ enqueue_now: Zařadit nyní
10
+ last_time: Naposled
11
+ next_time: Příště
12
+ no_next_time: no next execution for this job
13
+ disable: Zakázat
14
+ enable: Povolit
@@ -0,0 +1,16 @@
1
+ de:
2
+ recurring_jobs: Wiederkehrende Jobs
3
+ name: Name
4
+ description: Beschreibung
5
+ interval: Intervall
6
+ class: Klasse
7
+ queue: Warteschlange
8
+ arguments: Argumente
9
+ enqueue_now: Jetzt hinzufügen
10
+ last_time: Letzte Ausführung
11
+ next_time: Nächste Ausführung
12
+ no_next_time: Keine zukünftige Ausführung für diesen Job
13
+ disable: Deaktivieren
14
+ enable: Aktivieren
15
+ disable_all: Alle deaktivieren
16
+ enable_all: Alle aktivieren
@@ -0,0 +1,23 @@
1
+ en:
2
+ recurring_jobs: Recurring Jobs
3
+ name: Name
4
+ description: Description
5
+ interval: Interval
6
+ class: Class
7
+ queue: Queue
8
+ arguments: Arguments
9
+ enqueue_now: Enqueue now
10
+ last_time: Last Time
11
+ next_time: Next Time
12
+ no_next_time: no next execution for this job
13
+ disable: Disable
14
+ enable: Enable
15
+ disable_all: Disable all
16
+ enable_all: Enable all
17
+ remove: Remove
18
+ edit: Edit
19
+ update: Update
20
+ new: New
21
+ cancel: Cancel
22
+ create: Create
23
+
@@ -0,0 +1,14 @@
1
+ es:
2
+ recurring_jobs: Tareas Recurrentes
3
+ name: Nombre
4
+ description: Descripción
5
+ interval: Intervalo
6
+ class: Clase
7
+ queue: Cola
8
+ arguments: Argumentos
9
+ enqueue_now: Encolar ahora
10
+ last_time: Última ejecución
11
+ next_time: Próxima ejecución
12
+ no_next_time: esta tarea no se volverá a ejecutar
13
+ disable: Inhabilitar
14
+ enable: Habilitar
@@ -0,0 +1,13 @@
1
+ fr:
2
+ recurring_jobs: Tâches récurrentes
3
+ name: Nom
4
+ description: Description
5
+ interval: Intervalle
6
+ class: Classe
7
+ queue: Queue
8
+ arguments: Arguments
9
+ enqueue_now: Ajouter à la queue
10
+ next_time: Quand
11
+ no_next_time: Pas d'exécution prévue pour cette tâche
12
+ disable: Désactiver
13
+ enable: Activer
@@ -0,0 +1,14 @@
1
+ it:
2
+ recurring_jobs: Job ricorrenti
3
+ name: Nome
4
+ description: Descrizione
5
+ interval: Intervallo
6
+ class: Classe
7
+ queue: Coda
8
+ arguments: Argomenti
9
+ enqueue_now: Accoda ora
10
+ last_time: Ultima esecuzione
11
+ next_time: Prossima esecuzione
12
+ no_next_time: nessuna descrizione per questo Job
13
+ disable: Disabilita
14
+ enable: Abilita
@@ -0,0 +1,14 @@
1
+ ja:
2
+ recurring_jobs: 定期ジョブ
3
+ name: 名前
4
+ description: 説明
5
+ interval: インターバル
6
+ class: クラス
7
+ queue: キュー
8
+ arguments: 引数
9
+ enqueue_now: すぐにエンキュー
10
+ last_time: 前回
11
+ next_time: 次回
12
+ no_next_time: このジョブの次の実行はありません
13
+ disable: 無効
14
+ enable: 有効
@@ -0,0 +1,14 @@
1
+ nl:
2
+ recurring_jobs: Herhalende taken
3
+ name: Naam
4
+ description: Beschrijving
5
+ interval: Interval
6
+ class: Klasse
7
+ queue: Wachtrij
8
+ arguments: Argumenten
9
+ enqueue_now: Nu toevoegen
10
+ last_time: Laatste keer
11
+ next_time: Volgende keer
12
+ no_next_time: Geen volgende keer voor deze taak
13
+ disable: Uitzetten
14
+ enable: Aanzetten
@@ -0,0 +1,14 @@
1
+ pl:
2
+ recurring_jobs: Okresowe
3
+ name: Nazwa
4
+ description: Opis
5
+ interval: Interwał
6
+ class: Klasa
7
+ queue: Kolejka
8
+ arguments: Argumenty
9
+ enqueue_now: Zakolejkuj teraz
10
+ last_time: Ostatnie wystąpienie
11
+ next_time: Następne wystąpienie
12
+ no_next_time: to zadanie nie zostanie już wywołane
13
+ disable: Wyłącz
14
+ enable: Włącz
@@ -0,0 +1,19 @@
1
+ pt-BR:
2
+ recurring_jobs: Jobs Recorrentes
3
+ name: Nome
4
+ description: Descrição
5
+ interval: Intervalo
6
+ class: Classe
7
+ queue: Fila
8
+ arguments: Argumentos
9
+ enqueue_now: Enfileirar agora
10
+ last_time: Última execução
11
+ next_time: Próxima execução
12
+ no_next_time: Não há mais execuçoẽs
13
+ disable: Desativar
14
+ enable: Ativar
15
+ remove: Removee
16
+ edit: Editar
17
+ update: Atualiza
18
+ new: Novo
19
+ cancel: Cancelar
@@ -0,0 +1,16 @@
1
+ ru:
2
+ recurring_jobs: Расписание задач
3
+ name: Название
4
+ description: Описание
5
+ interval: Интервал
6
+ class: Класс
7
+ queue: Очередь
8
+ arguments: Аргументы
9
+ enqueue_now: Поставить в очередь
10
+ last_time: Время последнего выполнения
11
+ next_time: Время следующего выполнения
12
+ no_next_time: выполнение задачи не запланировано
13
+ disable: Выключить
14
+ enable: Включить
15
+ disable_all: Выключить все
16
+ enable_all: Включить все
@@ -0,0 +1,14 @@
1
+ sv:
2
+ recurring_jobs: Återkommande jobb
3
+ name: Namn
4
+ description: Beskrivning
5
+ interval: Interval
6
+ class: Klass
7
+ queue: Kö
8
+ arguments: Argument
9
+ enqueue_now: Placera i kö
10
+ last_time: Senaste gången
11
+ next_time: Nästa gång
12
+ no_next_time: inget nästa utförande för detta jobb
13
+ disable: Inaktivera
14
+ enable: Aktivera
@@ -0,0 +1,14 @@
1
+ zh-cn:
2
+ recurring_jobs: 周期作业
3
+ name: 名称
4
+ description: 描述
5
+ interval: 间隔
6
+ class: 类
7
+ queue: 队列
8
+ arguments: 参数
9
+ enqueue_now: 立即执行
10
+ last_time: 最后运行时间
11
+ next_time: 下次执行时间
12
+ no_next_time: 已无后续作业
13
+ disable: 禁用
14
+ enable: 启用
@@ -0,0 +1,17 @@
1
+ <h3>Recurring Job Update</h3>
2
+
3
+ <form action="<%= @form_action %>"
4
+ method="post" class="recurring-job" style="background-color:white;">
5
+ <%= csrf_tag %>
6
+ <div style="padding: 20px;">
7
+ <label for="name">Name:</label><br>
8
+ <input <%= @existing_rule ? 'disabled' : 'required' %> required name='name' type="text"
9
+ value="<%= @name %>" style='width:50%;'/><br>
10
+ <label for="args" style="padding-top: 10px;">Configuration:</label><br>
11
+ <textarea name='config' style='width:50%'><%= @config.to_json.html_safe %></textarea><br>
12
+ <span class="help-block" style='width:50%;'>Example:<br>{"cron":"0 9 * * * America/New_York","class":"NameSpace::WorkerName","args":["arg1","arg2"],"description":"something","queue":"default","enabled":true}</span><br>
13
+ <a href="<%= root_path %>recurring-jobs" class="btn btn-warn btn-xs"><%= t('cancel') %></a>
14
+ <input type="submit" class="btn btn-warn btn-xs" value="<%= @existing_rule ? t('update') : t('create') %>"/><br>
15
+ <a></a>
16
+ </div>
17
+ </form>
@@ -0,0 +1,113 @@
1
+ <%# This view is a copy from the sidekiq web view, with just a few new actions (remove, edit, new) %>
2
+ <% if Sidekiq::VERSION >= '6.0.0' %>
3
+ <link href="<%= root_path %>stylesheets-scheduler/recurring_jobs.css" media="screen" rel="stylesheet" type="text/css" />
4
+ <% else %>
5
+ <style>
6
+ .recurring-jobs { border-top-left-radius: 4px; border-top-right-radius: 4px; }
7
+ .recurring-jobs .title { margin-bottom: 5px; }
8
+ .recurring-jobs .title .name { font-weight: bold;}
9
+ .recurring-jobs .info,
10
+ .recurring-jobs .description { margin-bottom: 5px; }
11
+ .recurring-jobs .actions { margin-bottom: 5px; }
12
+ .recurring-jobs .status,
13
+ .recurring-jobs .description { font-size: 12px; }
14
+ .recurring-jobs .enqueue { margin-bottom: 0.5rem }
15
+
16
+ .list-group-item {
17
+ background-color: #f3f3f3;
18
+ color: #585454;
19
+ border: 1px solid rgba(0, 0, 0, 0.1);
20
+ }
21
+
22
+ .list-group-item-disabled {
23
+ background-color: #f3d3d3;
24
+ }
25
+
26
+ .toggle-all-buttons {
27
+ margin-top: 20px;
28
+ margin-bottom: 10px;
29
+ line-height: 45px;
30
+ text-align: right;
31
+ }
32
+
33
+ @media (max-width: 768px) {
34
+ .toggle-all-buttons {
35
+ margin-top: 0;
36
+ text-align: left;
37
+ line-height: inherit;
38
+ }
39
+ }
40
+ </style>
41
+ <% end %>
42
+
43
+ <div class="row">
44
+ <div class="col-sm-6">
45
+ <h3><%= t('recurring_jobs') %></h3>
46
+ </div>
47
+ <div class="col-sm-6 toggle-all-buttons">
48
+ <form action="<%= root_path %>recurring-jobs/toggle-all" method="post">
49
+ <%= csrf_tag %>
50
+ <button type="submit" class="btn btn-warn btn-xs" name="action" value="enable"><%= t('enable_all') %></button>
51
+ <button type="submit" class="btn btn-warn btn-xs" name="action" value="disable"><%= t('disable_all') %></button>
52
+ </form>
53
+ <form action="<%= root_path %>recurring-jobs/new" method="post">
54
+ <%= csrf_tag %>
55
+ <button type="submit" class="btn btn-warn btn-xs" name="action" value="enable"><%= t('new') %></button>
56
+ </form>
57
+ </div>
58
+ </div>
59
+
60
+ <div class="recurring-jobs">
61
+ <ul class="list-group">
62
+ <% @presented_jobs.each do |job| %>
63
+ <li class="list-group-item <%= !job.enabled? && "list-group-item-disabled" %>">
64
+ <div class="title">
65
+ <div class="row">
66
+ <div class="col-xs-6">
67
+ <span class="name"><%= job.name %></span>
68
+ </div>
69
+ <div class="col-xs-6 text-right">
70
+ <a href="<%= root_path %>queues/<%= job.queue %>"><%= job.queue %></a>
71
+ </div>
72
+ </div>
73
+ </div>
74
+ <div class="description"><%= job['description'] %></div>
75
+ <div class="info">
76
+ <div class="row">
77
+ <div class="col-md-4 class"><%= job['class'] %></div>
78
+ <div class="col-md-4 interval text-left"><%= t('interval') %>: <%= job.interval %></div>
79
+ <div class="col-md-4 args"><%= t('arguments') %>: <%= job['args'] %></div>
80
+ </div>
81
+ </div>
82
+ <div class="status row">
83
+ <div class="col-md-4 actions">
84
+ <form action="<%= root_path %>recurring-jobs/<%= ERB::Util.url_encode(job.name) %>/enqueue" method="post" class="enqueue">
85
+ <%= csrf_tag %>
86
+ <input type="submit" class="btn btn-warn btn-xs" value="<%= t('enqueue_now') %>" />
87
+ </form>
88
+ <form action="<%= root_path %>recurring-jobs/<%= ERB::Util.url_encode(job.name) %>/toggle" method="post">
89
+ <%= csrf_tag %>
90
+ <input type="submit" class="btn <%= job.enabled? ? "btn-primary" : "btn-warn"%> btn-xs" value="<%= job.enabled? ? t('disable') : t('enable') %>" />
91
+ </form>
92
+ <form action="<%= root_path %>recurring-jobs/<%= ERB::Util.url_encode(job.name) %>/destroy" method="post">
93
+ <%= csrf_tag %>
94
+ <input type="submit" class="btn <%= job.enabled? ? "btn-primary" : "btn-warn"%> btn-xs" value="<%= t('remove') %>" />
95
+ </form>
96
+ <form action="<%= root_path %>recurring-jobs/<%= ERB::Util.url_encode(job.name) %>/edit" method="post">
97
+ <%= csrf_tag %>
98
+ <input type="submit" class="btn <%= job.enabled? ? "btn-primary" : "btn-warn"%> btn-xs" value="<%= t('edit') %>" />
99
+ </form>
100
+ </div>
101
+ <div class="col-md-4">
102
+ <span class="last_time"><%= t('last_time') %>: <%= job.last_time %></span>
103
+ </div>
104
+ <div class="col-md-4">
105
+ <span class="next_time text-right" style="<%= 'text-decoration:line-through' unless job.enabled? %>">
106
+ <%= t('next_time') %>: <%= job.next_time || t('no_next_time') %>
107
+ </span>
108
+ </div>
109
+ </div>
110
+ </li>
111
+ <% end %>
112
+ </ul>
113
+ </div>
metadata ADDED
@@ -0,0 +1,257 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dynamodb-sidekiq-scheduler
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Morton Jonuschat
8
+ - Moove-it
9
+ - Marcelo Lauxen
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2023-06-22 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: sidekiq
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - ">="
20
+ - !ruby/object:Gem::Version
21
+ version: '6'
22
+ - - "<"
23
+ - !ruby/object:Gem::Version
24
+ version: '8'
25
+ type: :runtime
26
+ prerelease: false
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: '6'
32
+ - - "<"
33
+ - !ruby/object:Gem::Version
34
+ version: '8'
35
+ - !ruby/object:Gem::Dependency
36
+ name: rufus-scheduler
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '3.2'
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '3.2'
49
+ - !ruby/object:Gem::Dependency
50
+ name: tilt
51
+ requirement: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 1.4.0
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 1.4.0
63
+ - !ruby/object:Gem::Dependency
64
+ name: rake
65
+ requirement: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '12.0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '12.0'
77
+ - !ruby/object:Gem::Dependency
78
+ name: timecop
79
+ requirement: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ type: :development
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ - !ruby/object:Gem::Dependency
92
+ name: mocha
93
+ requirement: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ type: :development
99
+ prerelease: false
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ - !ruby/object:Gem::Dependency
106
+ name: rspec
107
+ requirement: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ type: :development
113
+ prerelease: false
114
+ version_requirements: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ - !ruby/object:Gem::Dependency
120
+ name: simplecov
121
+ requirement: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ type: :development
127
+ prerelease: false
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ - !ruby/object:Gem::Dependency
134
+ name: byebug
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
140
+ type: :development
141
+ prerelease: false
142
+ version_requirements: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ version: '0'
147
+ - !ruby/object:Gem::Dependency
148
+ name: activejob
149
+ requirement: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ - !ruby/object:Gem::Dependency
162
+ name: rack-test
163
+ requirement: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ type: :development
169
+ prerelease: false
170
+ version_requirements: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ - !ruby/object:Gem::Dependency
176
+ name: rack
177
+ requirement: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "<"
180
+ - !ruby/object:Gem::Version
181
+ version: '3'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "<"
187
+ - !ruby/object:Gem::Version
188
+ version: '3'
189
+ description: Light weight job scheduling extension for Sidekiq that adds support for
190
+ queueing jobs in a recurring way.
191
+ email:
192
+ - sidekiq-scheduler@moove-it.com
193
+ - marcelolauxen16@gmail.com
194
+ executables: []
195
+ extensions: []
196
+ extra_rdoc_files: []
197
+ files:
198
+ - CHANGELOG.md
199
+ - MIT-LICENSE
200
+ - README.md
201
+ - Rakefile
202
+ - lib/sidekiq-scheduler.rb
203
+ - lib/sidekiq-scheduler/config.rb
204
+ - lib/sidekiq-scheduler/extensions/schedule.rb
205
+ - lib/sidekiq-scheduler/extensions/web.rb
206
+ - lib/sidekiq-scheduler/job_presenter.rb
207
+ - lib/sidekiq-scheduler/manager.rb
208
+ - lib/sidekiq-scheduler/redis_manager.rb
209
+ - lib/sidekiq-scheduler/rufus_utils.rb
210
+ - lib/sidekiq-scheduler/schedule.rb
211
+ - lib/sidekiq-scheduler/scheduler.rb
212
+ - lib/sidekiq-scheduler/sidekiq_adapter.rb
213
+ - lib/sidekiq-scheduler/utils.rb
214
+ - lib/sidekiq-scheduler/version.rb
215
+ - lib/sidekiq-scheduler/web.rb
216
+ - lib/sidekiq/scheduler.rb
217
+ - web/assets/stylesheets-scheduler/recurring_jobs.css
218
+ - web/locales/cs.yml
219
+ - web/locales/de.yml
220
+ - web/locales/en.yml
221
+ - web/locales/es.yml
222
+ - web/locales/fr.yml
223
+ - web/locales/it.yml
224
+ - web/locales/ja.yml
225
+ - web/locales/nl.yml
226
+ - web/locales/pl.yml
227
+ - web/locales/pt-BR.yml
228
+ - web/locales/ru.yml
229
+ - web/locales/sv.yml
230
+ - web/locales/zh-cn.yml
231
+ - web/views/recurring_job.erb
232
+ - web/views/recurring_jobs.erb
233
+ homepage: https://sidekiq-scheduler.github.io/sidekiq-scheduler/
234
+ licenses:
235
+ - MIT
236
+ metadata: {}
237
+ post_install_message:
238
+ rdoc_options: []
239
+ require_paths:
240
+ - lib
241
+ required_ruby_version: !ruby/object:Gem::Requirement
242
+ requirements:
243
+ - - ">="
244
+ - !ruby/object:Gem::Version
245
+ version: '2.5'
246
+ required_rubygems_version: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ requirements: []
252
+ rubyforge_project:
253
+ rubygems_version: 2.7.6.2
254
+ signing_key:
255
+ specification_version: 4
256
+ summary: Light weight job scheduling extension for Sidekiq
257
+ test_files: []