sidekiq 6.0.7 → 6.4.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sidekiq might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Changes.md +189 -2
- data/LICENSE +3 -3
- data/README.md +11 -10
- data/bin/sidekiq +8 -3
- data/bin/sidekiqload +57 -65
- data/bin/sidekiqmon +1 -1
- data/lib/generators/sidekiq/job_generator.rb +57 -0
- data/lib/generators/sidekiq/templates/{worker.rb.erb → job.rb.erb} +2 -2
- data/lib/generators/sidekiq/templates/{worker_spec.rb.erb → job_spec.rb.erb} +1 -1
- data/lib/generators/sidekiq/templates/{worker_test.rb.erb → job_test.rb.erb} +1 -1
- data/lib/sidekiq/api.rb +164 -116
- data/lib/sidekiq/cli.rb +49 -15
- data/lib/sidekiq/client.rb +51 -70
- data/lib/sidekiq/delay.rb +2 -0
- data/lib/sidekiq/extensions/action_mailer.rb +3 -2
- data/lib/sidekiq/extensions/active_record.rb +4 -3
- data/lib/sidekiq/extensions/class_methods.rb +5 -4
- data/lib/sidekiq/extensions/generic_proxy.rb +4 -2
- data/lib/sidekiq/fetch.rb +32 -23
- data/lib/sidekiq/job.rb +13 -0
- data/lib/sidekiq/job_logger.rb +16 -28
- data/lib/sidekiq/job_retry.rb +32 -33
- data/lib/sidekiq/job_util.rb +67 -0
- data/lib/sidekiq/launcher.rb +113 -54
- data/lib/sidekiq/logger.rb +11 -20
- data/lib/sidekiq/manager.rb +16 -18
- data/lib/sidekiq/middleware/chain.rb +10 -8
- data/lib/sidekiq/middleware/current_attributes.rb +57 -0
- data/lib/sidekiq/middleware/i18n.rb +4 -4
- data/lib/sidekiq/monitor.rb +1 -1
- data/lib/sidekiq/paginator.rb +8 -8
- data/lib/sidekiq/processor.rb +31 -31
- data/lib/sidekiq/rails.rb +36 -20
- data/lib/sidekiq/redis_connection.rb +16 -15
- data/lib/sidekiq/scheduled.rb +51 -16
- data/lib/sidekiq/sd_notify.rb +1 -1
- data/lib/sidekiq/testing/inline.rb +4 -4
- data/lib/sidekiq/testing.rb +38 -39
- data/lib/sidekiq/util.rb +41 -0
- data/lib/sidekiq/version.rb +1 -1
- data/lib/sidekiq/web/action.rb +2 -2
- data/lib/sidekiq/web/application.rb +21 -12
- data/lib/sidekiq/web/csrf_protection.rb +180 -0
- data/lib/sidekiq/web/helpers.rb +39 -33
- data/lib/sidekiq/web/router.rb +5 -2
- data/lib/sidekiq/web.rb +36 -72
- data/lib/sidekiq/worker.rb +135 -16
- data/lib/sidekiq.rb +33 -17
- data/sidekiq.gemspec +11 -4
- data/web/assets/images/apple-touch-icon.png +0 -0
- data/web/assets/javascripts/application.js +113 -65
- data/web/assets/javascripts/dashboard.js +51 -51
- data/web/assets/stylesheets/application-dark.css +64 -43
- data/web/assets/stylesheets/application-rtl.css +0 -4
- data/web/assets/stylesheets/application.css +42 -239
- data/web/locales/ar.yml +8 -2
- data/web/locales/en.yml +4 -1
- data/web/locales/es.yml +18 -2
- data/web/locales/fr.yml +8 -1
- data/web/locales/ja.yml +3 -0
- data/web/locales/lt.yml +1 -1
- data/web/locales/pl.yml +4 -4
- data/web/locales/ru.yml +4 -0
- data/web/views/_footer.erb +1 -1
- data/web/views/_job_info.erb +1 -1
- data/web/views/_poll_link.erb +2 -5
- data/web/views/_summary.erb +7 -7
- data/web/views/busy.erb +51 -20
- data/web/views/dashboard.erb +22 -14
- data/web/views/dead.erb +1 -1
- data/web/views/layout.erb +2 -1
- data/web/views/morgue.erb +6 -6
- data/web/views/queue.erb +11 -11
- data/web/views/queues.erb +4 -4
- data/web/views/retries.erb +7 -7
- data/web/views/retry.erb +1 -1
- data/web/views/scheduled.erb +1 -1
- metadata +24 -49
- data/.circleci/config.yml +0 -60
- data/.github/contributing.md +0 -32
- data/.github/issue_template.md +0 -11
- data/.gitignore +0 -13
- data/.standard.yml +0 -20
- data/3.0-Upgrade.md +0 -70
- data/4.0-Upgrade.md +0 -53
- data/5.0-Upgrade.md +0 -56
- data/6.0-Upgrade.md +0 -72
- data/COMM-LICENSE +0 -97
- data/Ent-2.0-Upgrade.md +0 -37
- data/Ent-Changes.md +0 -256
- data/Gemfile +0 -24
- data/Gemfile.lock +0 -208
- data/Pro-2.0-Upgrade.md +0 -138
- data/Pro-3.0-Upgrade.md +0 -44
- data/Pro-4.0-Upgrade.md +0 -35
- data/Pro-5.0-Upgrade.md +0 -25
- data/Pro-Changes.md +0 -782
- data/Rakefile +0 -10
- data/code_of_conduct.md +0 -50
- data/lib/generators/sidekiq/worker_generator.rb +0 -57
data/web/locales/ja.yml
CHANGED
@@ -7,6 +7,7 @@ ja:
|
|
7
7
|
Realtime: リアルタイム
|
8
8
|
History: 履歴
|
9
9
|
Busy: 実行中
|
10
|
+
Utilization: 使用率
|
10
11
|
Processed: 完了
|
11
12
|
Failed: 失敗
|
12
13
|
Scheduled: 予定
|
@@ -64,7 +65,9 @@ ja:
|
|
64
65
|
DeadJobs: デッドジョブ
|
65
66
|
NoDeadJobsFound: デッドジョブはありません
|
66
67
|
Dead: デッド
|
68
|
+
Process: プロセス
|
67
69
|
Processes: プロセス
|
70
|
+
Name: 名前
|
68
71
|
Thread: スレッド
|
69
72
|
Threads: スレッド
|
70
73
|
Jobs: ジョブ
|
data/web/locales/lt.yml
CHANGED
data/web/locales/pl.yml
CHANGED
@@ -10,7 +10,7 @@ pl:
|
|
10
10
|
Processed: Ukończone
|
11
11
|
Failed: Nieudane
|
12
12
|
Scheduled: Zaplanowane
|
13
|
-
Retries:
|
13
|
+
Retries: Do ponowienia
|
14
14
|
Enqueued: Zakolejkowane
|
15
15
|
Worker: Worker
|
16
16
|
LivePoll: Wczytuj na żywo
|
@@ -29,15 +29,15 @@ pl:
|
|
29
29
|
Queues: Kolejki
|
30
30
|
Size: Rozmiar
|
31
31
|
Actions: Akcje
|
32
|
-
NextRetry:
|
33
|
-
RetryCount:
|
32
|
+
NextRetry: Następne ponowienie
|
33
|
+
RetryCount: Ilość ponowień
|
34
34
|
RetryNow: Ponów teraz
|
35
35
|
LastRetry: Ostatnie ponowienie
|
36
36
|
OriginallyFailed: Ostatnio nieudane
|
37
37
|
AreYouSure: Na pewno?
|
38
38
|
DeleteAll: Usuń wszystko
|
39
39
|
RetryAll: Powtórz wszystko
|
40
|
-
NoRetriesFound: Brak
|
40
|
+
NoRetriesFound: Brak zadań do ponowienia
|
41
41
|
Error: Błąd
|
42
42
|
ErrorClass: Klasa błędu
|
43
43
|
ErrorMessage: Wiadomosć błędu
|
data/web/locales/ru.yml
CHANGED
@@ -38,6 +38,7 @@ ru:
|
|
38
38
|
AreYouSure: Вы уверены?
|
39
39
|
DeleteAll: Удалить все
|
40
40
|
RetryAll: Повторить все
|
41
|
+
KillAll: Убить всё
|
41
42
|
NoRetriesFound: Нет попыток
|
42
43
|
Error: Ошибка
|
43
44
|
ErrorClass: Класс ошибки
|
@@ -76,3 +77,6 @@ ru:
|
|
76
77
|
NotYetEnqueued: Пока не в очереди
|
77
78
|
CreatedAt: Создан
|
78
79
|
BackToApp: Назад
|
80
|
+
Latency: Задержка
|
81
|
+
Pause: Пауза
|
82
|
+
Unpause: Возобновить
|
data/web/views/_footer.erb
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
<p class="navbar-text redis-url" title="<%= redis_connection_and_namespace %>"><%= redis_connection_and_namespace %></p>
|
10
10
|
</li>
|
11
11
|
<li>
|
12
|
-
<p class="navbar-text server-utc-time"><%= server_utc_time %></p>
|
12
|
+
<p id="serverUtcTime" class="navbar-text server-utc-time"><%= server_utc_time %></p>
|
13
13
|
</li>
|
14
14
|
<li>
|
15
15
|
<p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>
|
data/web/views/_job_info.erb
CHANGED
data/web/views/_poll_link.erb
CHANGED
@@ -1,7 +1,4 @@
|
|
1
1
|
<% if current_path != '' %>
|
2
|
-
|
3
|
-
<a
|
4
|
-
<% else %>
|
5
|
-
<a id="live-poll" class="btn btn-primary" href="<%= root_path + current_path %>?<%= qparams(poll: true) %>"><%= t('LivePoll') %></a>
|
6
|
-
<% end %>
|
2
|
+
<a class="live-poll-start live-poll btn btn-primary"><%= t('LivePoll') %></a>
|
3
|
+
<a class="live-poll-stop live-poll btn btn-primary active"><%= t('StopPolling') %></a>
|
7
4
|
<% end %>
|
data/web/views/_summary.erb
CHANGED
@@ -1,39 +1,39 @@
|
|
1
1
|
<ul class="list-unstyled summary row">
|
2
2
|
<li class="processed col-sm-1">
|
3
|
-
<span class="count"><%= number_with_delimiter(stats.processed) %></span>
|
3
|
+
<span id="txtProcessed" class="count"><%= number_with_delimiter(stats.processed) %></span>
|
4
4
|
<span class="desc"><%= t('Processed') %></span>
|
5
5
|
</li>
|
6
6
|
<li class="failed col-sm-1">
|
7
|
-
<span class="count"><%= number_with_delimiter(stats.failed) %></span>
|
7
|
+
<span id="txtFailed" class="count"><%= number_with_delimiter(stats.failed) %></span>
|
8
8
|
<span class="desc"><%= t('Failed') %></span>
|
9
9
|
</li>
|
10
10
|
<li class="busy col-sm-1">
|
11
11
|
<a href="<%= root_path %>busy">
|
12
|
-
<span class="count"><%= number_with_delimiter(
|
12
|
+
<span id="txtBusy" class="count"><%= number_with_delimiter(workset.size) %></span>
|
13
13
|
<span class="desc"><%= t('Busy') %></span>
|
14
14
|
</a>
|
15
15
|
</li>
|
16
16
|
<li class="enqueued col-sm-1">
|
17
17
|
<a href="<%= root_path %>queues">
|
18
|
-
<span class="count"><%= number_with_delimiter(stats.enqueued) %></span>
|
18
|
+
<span id="txtEnqueued" class="count"><%= number_with_delimiter(stats.enqueued) %></span>
|
19
19
|
<span class="desc"><%= t('Enqueued') %></span>
|
20
20
|
</a>
|
21
21
|
</li>
|
22
22
|
<li class="retries col-sm-1">
|
23
23
|
<a href="<%= root_path %>retries">
|
24
|
-
<span class="count"><%= number_with_delimiter(stats.retry_size) %></span>
|
24
|
+
<span id="txtRetries" class="count"><%= number_with_delimiter(stats.retry_size) %></span>
|
25
25
|
<span class="desc"><%= t('Retries') %></span>
|
26
26
|
</a>
|
27
27
|
</li>
|
28
28
|
<li class="scheduled col-sm-1">
|
29
29
|
<a href="<%= root_path %>scheduled">
|
30
|
-
<span class="count"><%= number_with_delimiter(stats.scheduled_size) %></span>
|
30
|
+
<span id="txtScheduled" class="count"><%= number_with_delimiter(stats.scheduled_size) %></span>
|
31
31
|
<span class="desc"><%= t('Scheduled') %></span>
|
32
32
|
</a>
|
33
33
|
</li>
|
34
34
|
<li class="dead col-sm-1">
|
35
35
|
<a href="<%= root_path %>morgue">
|
36
|
-
<span class="count"><%= number_with_delimiter(stats.dead_size) %></span>
|
36
|
+
<span id="txtDead" class="count"><%= number_with_delimiter(stats.dead_size) %></span>
|
37
37
|
<span class="desc"><%= t('Dead') %></span>
|
38
38
|
</a>
|
39
39
|
</li>
|
data/web/views/busy.erb
CHANGED
@@ -1,8 +1,39 @@
|
|
1
1
|
<div class="row header">
|
2
|
-
<div class="col-sm-
|
2
|
+
<div class="col-sm-4 pull-left flip">
|
3
|
+
<h3><%= t('Status') %></h3>
|
4
|
+
</div>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<div class="stats-wrapper">
|
8
|
+
<div class="stats-container">
|
9
|
+
<div class="stat">
|
10
|
+
<h3><%= s = processes.size; number_with_delimiter(s) %></h3>
|
11
|
+
<p><%= t('Processes') %></p>
|
12
|
+
</div>
|
13
|
+
<div class="stat">
|
14
|
+
<h3><%= x = processes.total_concurrency; number_with_delimiter(x) %></h3>
|
15
|
+
<p><%= t('Threads') %></p>
|
16
|
+
</div>
|
17
|
+
<div class="stat">
|
18
|
+
<h3><%= ws = workset.size; number_with_delimiter(ws) %></h3>
|
19
|
+
<p><%= t('Busy') %></p>
|
20
|
+
</div>
|
21
|
+
<div class="stat">
|
22
|
+
<h3><%= x == 0 ? 0 : ((ws / x.to_f) * 100).round(0) %>%</h3>
|
23
|
+
<p><%= t('Utilization') %></p>
|
24
|
+
</div>
|
25
|
+
<div class="stat">
|
26
|
+
<h3><%= format_memory(processes.total_rss) %></h3>
|
27
|
+
<p><%= t('RSS') %></p>
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<div class="row header">
|
33
|
+
<div class="col-sm-4 pull-left flip">
|
3
34
|
<h3><%= t('Processes') %></h3>
|
4
35
|
</div>
|
5
|
-
<div class="col-sm-
|
36
|
+
<div class="col-sm-3 pull-right flip">
|
6
37
|
<form method="POST" class="warning-messages">
|
7
38
|
<%= csrf_tag %>
|
8
39
|
<div class="btn-group pull-right flip">
|
@@ -12,14 +43,14 @@
|
|
12
43
|
</form>
|
13
44
|
</div>
|
14
45
|
</div>
|
15
|
-
|
16
46
|
<div class="table_container">
|
17
|
-
<table class="processes table table-hover table-bordered table-striped
|
47
|
+
<table class="processes table table-hover table-bordered table-striped">
|
18
48
|
<thead>
|
19
49
|
<th><%= t('Name') %></th>
|
20
50
|
<th><%= t('Started') %></th>
|
21
|
-
<th><%= t('
|
22
|
-
<th><%= t('
|
51
|
+
<th class="col-sm-1"><%= t('RSS') %><a target="blank" href="https://github.com/mperham/sidekiq/wiki/Memory#rss"><span class="info-circle" title="Click to learn more about RSS">?</span></a></th>
|
52
|
+
<th class="col-sm-1"><%= t('Threads') %></th>
|
53
|
+
<th class="col-sm-1"><%= t('Busy') %></th>
|
23
54
|
<th> </th>
|
24
55
|
</thead>
|
25
56
|
<% lead = processes.leader %>
|
@@ -39,22 +70,22 @@
|
|
39
70
|
<% end %>
|
40
71
|
<br>
|
41
72
|
<b><%= "#{t('Queues')}: " %></b>
|
42
|
-
<%= process
|
73
|
+
<%= process.queues.join(", ") %>
|
43
74
|
</td>
|
44
75
|
<td><%= relative_time(Time.at(process['started_at'])) %></td>
|
76
|
+
<td><%= format_memory(process['rss'].to_i) %></td>
|
45
77
|
<td><%= process['concurrency'] %></td>
|
46
78
|
<td><%= process['busy'] %></td>
|
47
79
|
<td>
|
48
|
-
<
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
</div>
|
80
|
+
<form method="POST">
|
81
|
+
<%= csrf_tag %>
|
82
|
+
<input type="hidden" name="identity" value="<%= process['identity'] %>"/>
|
83
|
+
|
84
|
+
<div class="btn-group pull-right flip">
|
85
|
+
<% unless process.stopping? %><button class="btn btn-xs btn-warn" type="submit" name="quiet" value="1"><%= t('Quiet') %></button><% end %>
|
86
|
+
<button class="btn btn-xs btn-danger" type="submit" name="stop" value="1"><%= t('Stop') %></button>
|
87
|
+
</div>
|
88
|
+
</form>
|
58
89
|
</td>
|
59
90
|
</tr>
|
60
91
|
<% end %>
|
@@ -68,7 +99,7 @@
|
|
68
99
|
</div>
|
69
100
|
|
70
101
|
<div class="table_container">
|
71
|
-
<table class="workers table table-hover table-bordered table-striped
|
102
|
+
<table class="workers table table-hover table-bordered table-striped">
|
72
103
|
<thead>
|
73
104
|
<th><%= t('Process') %></th>
|
74
105
|
<th><%= t('TID') %></th>
|
@@ -78,8 +109,8 @@
|
|
78
109
|
<th><%= t('Arguments') %></th>
|
79
110
|
<th><%= t('Started') %></th>
|
80
111
|
</thead>
|
81
|
-
<%
|
82
|
-
<% job = Sidekiq::
|
112
|
+
<% workset.each do |process, thread, msg| %>
|
113
|
+
<% job = Sidekiq::JobRecord.new(msg['payload']) %>
|
83
114
|
<tr>
|
84
115
|
<td><%= process %></td>
|
85
116
|
<td><%= thread %></td>
|
data/web/views/dashboard.erb
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
<div class= "dashboard clearfix">
|
3
3
|
<h3 >
|
4
4
|
<%= t('Dashboard') %>
|
5
|
-
<span class="beacon">
|
5
|
+
<span id="beacon" class="beacon">
|
6
6
|
<span class="ring"></span>
|
7
7
|
<span class="dot"></span>
|
8
8
|
</span>
|
9
9
|
</h3>
|
10
10
|
<div class="interval-slider ltr">
|
11
11
|
<span class="interval-slider-label"><%= t('PollingInterval') %>:</span>
|
12
|
-
<span class="current-interval">5 sec</span>
|
12
|
+
<span id="sldr-text" class="current-interval">5 sec</span>
|
13
13
|
<br/>
|
14
|
-
<input type="range" min="2000" max="20000" step="1000" value="5000"/>
|
14
|
+
<input id="sldr" type="range" min="2000" max="20000" step="1000" value="5000"/>
|
15
15
|
</div>
|
16
16
|
</div>
|
17
17
|
|
@@ -20,54 +20,62 @@
|
|
20
20
|
<div id="realtime-legend"></div>
|
21
21
|
</div>
|
22
22
|
|
23
|
-
<div class="row
|
24
|
-
|
25
|
-
|
23
|
+
<div class="row header">
|
24
|
+
<div class="col-sm-4 pull-left flip">
|
25
|
+
<h3><%= t('History') %></h3>
|
26
|
+
</div>
|
27
|
+
</div>
|
28
|
+
<div class="row chart">
|
29
|
+
<div>
|
26
30
|
<a href="<%= root_path %>?days=7" class="history-graph <%= "active" if params[:days] == "7" %>"><%= t('OneWeek') %></a>
|
27
31
|
<a href="<%= root_path %>" class="history-graph <%= "active" if params[:days].nil? || params[:days] == "30" %>"><%= t('OneMonth') %></a>
|
28
32
|
<a href="<%= root_path %>?days=90" class="history-graph <%= "active" if params[:days] == "90" %>"><%= t('ThreeMonths') %></a>
|
29
33
|
<a href="<%= root_path %>?days=180" class="history-graph <%= "active" if params[:days] == "180" %>"><%= t('SixMonths') %></a>
|
30
|
-
</
|
34
|
+
</div>
|
31
35
|
|
32
36
|
<div id="history" data-processed-label="<%= t('Processed') %>" data-failed-label="<%= t('Failed') %>" data-processed="<%= h Sidekiq.dump_json(@processed_history) %>" data-failed="<%= h Sidekiq.dump_json(@failed_history) %>" data-update-url="<%= root_path %>stats"></div>
|
33
37
|
<div id="history-legend"></div>
|
34
38
|
</div>
|
35
39
|
|
36
40
|
<br/>
|
37
|
-
<
|
38
|
-
<div class="
|
41
|
+
<div class="row header">
|
42
|
+
<div class="col-sm-4 pull-left flip">
|
43
|
+
<h3>Redis</h3>
|
44
|
+
</div>
|
45
|
+
</div>
|
46
|
+
<div class="stats-wrapper">
|
39
47
|
<div class="stats-container">
|
40
48
|
<% if @redis_info.fetch("redis_version", nil) %>
|
41
49
|
<div class="stat">
|
42
|
-
<h3
|
50
|
+
<h3 id="redis_version"><%= @redis_info.fetch("redis_version") %></h3>
|
43
51
|
<p><%= t('Version') %></p>
|
44
52
|
</div>
|
45
53
|
<% end %>
|
46
54
|
|
47
55
|
<% if @redis_info.fetch("uptime_in_days", nil) %>
|
48
56
|
<div class="stat">
|
49
|
-
<h3
|
57
|
+
<h3 id="uptime_in_days"><%= @redis_info.fetch("uptime_in_days") %></h3>
|
50
58
|
<p><%= t('Uptime') %></p>
|
51
59
|
</div>
|
52
60
|
<% end %>
|
53
61
|
|
54
62
|
<% if @redis_info.fetch("connected_clients", nil) %>
|
55
63
|
<div class="stat">
|
56
|
-
<h3
|
64
|
+
<h3 id="connected_clients"><%= @redis_info.fetch("connected_clients") %></h3>
|
57
65
|
<p><%= t('Connections') %></p>
|
58
66
|
</div>
|
59
67
|
<% end %>
|
60
68
|
|
61
69
|
<% if @redis_info.fetch("used_memory_human", nil) %>
|
62
70
|
<div class="stat">
|
63
|
-
<h3
|
71
|
+
<h3 id="used_memory_human"><%= @redis_info.fetch("used_memory_human") %></h3>
|
64
72
|
<p><%= t('MemoryUsage') %></p>
|
65
73
|
</div>
|
66
74
|
<% end %>
|
67
75
|
|
68
76
|
<% if @redis_info.fetch("used_memory_peak_human", nil) %>
|
69
77
|
<div class="stat">
|
70
|
-
<h3
|
78
|
+
<h3 id="used_memory_peak_human"><%= @redis_info.fetch("used_memory_peak_human") %></h3>
|
71
79
|
<p><%= t('PeakMemoryUsage') %></p>
|
72
80
|
</div>
|
73
81
|
<% end %>
|
data/web/views/dead.erb
CHANGED
data/web/views/layout.erb
CHANGED
@@ -16,12 +16,13 @@
|
|
16
16
|
<link href="<%= root_path %>stylesheets/application-rtl.css" media="screen" rel="stylesheet" type="text/css" />
|
17
17
|
<% end %>
|
18
18
|
|
19
|
+
<link rel="apple-touch-icon" href="<%= root_path %>images/apple-touch-icon.png">
|
19
20
|
<link rel="shortcut icon" type="image/ico" href="<%= root_path %>images/favicon.ico" />
|
20
21
|
<script type="text/javascript" src="<%= root_path %>javascripts/application.js"></script>
|
21
22
|
<meta name="google" content="notranslate" />
|
22
23
|
<%= display_custom_head %>
|
23
24
|
</head>
|
24
|
-
<body class="admin" data-
|
25
|
+
<body class="admin" data-locale="<%= locale %>">
|
25
26
|
<%= erb :_nav %>
|
26
27
|
<div id="page">
|
27
28
|
<div class="container">
|
data/web/views/morgue.erb
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
<form action="<%= root_path %>morgue" method="post">
|
15
15
|
<%= csrf_tag %>
|
16
16
|
<div class="table_container">
|
17
|
-
<table class="table table-striped table-bordered table-
|
17
|
+
<table class="table table-striped table-bordered table-hover">
|
18
18
|
<thead>
|
19
19
|
<tr>
|
20
20
|
<th class="table-checkbox checkbox-column">
|
@@ -44,7 +44,7 @@
|
|
44
44
|
</td>
|
45
45
|
<td>
|
46
46
|
<%= entry.display_class %>
|
47
|
-
<%= display_tags(entry, "
|
47
|
+
<%= display_tags(entry, "dead") %>
|
48
48
|
</td>
|
49
49
|
<td>
|
50
50
|
<div class="args"><%= display_args(entry.display_args) %></div>
|
@@ -58,18 +58,18 @@
|
|
58
58
|
<% end %>
|
59
59
|
</table>
|
60
60
|
</div>
|
61
|
-
<input class="btn btn-primary
|
62
|
-
<input class="btn btn-danger
|
61
|
+
<input class="btn btn-primary pull-left flip" type="submit" name="retry" value="<%= t('RetryNow') %>" />
|
62
|
+
<input class="btn btn-danger pull-left flip" type="submit" name="delete" value="<%= t('Delete') %>" />
|
63
63
|
</form>
|
64
64
|
|
65
65
|
<% unfiltered? do %>
|
66
66
|
<form action="<%= root_path %>morgue/all/delete" method="post">
|
67
67
|
<%= csrf_tag %>
|
68
|
-
<input class="btn btn-danger
|
68
|
+
<input class="btn btn-danger pull-right flip" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
|
69
69
|
</form>
|
70
70
|
<form action="<%= root_path %>morgue/all/retry" method="post">
|
71
71
|
<%= csrf_tag %>
|
72
|
-
<input class="btn btn-danger
|
72
|
+
<input class="btn btn-danger pull-right flip" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
|
73
73
|
</form>
|
74
74
|
<% end %>
|
75
75
|
|
data/web/views/queue.erb
CHANGED
@@ -20,31 +20,31 @@
|
|
20
20
|
<th><%= t('Arguments') %></th>
|
21
21
|
<th></th>
|
22
22
|
</thead>
|
23
|
-
<% @
|
24
|
-
<tr>
|
23
|
+
<% @jobs.each_with_index do |job, index| %>
|
24
|
+
<tr title="<%= job.jid %>">
|
25
25
|
<% if params[:direction] == 'asc' %>
|
26
26
|
<td><%= @count * (@current_page - 1) + index + 1 %></td>
|
27
27
|
<% else %>
|
28
28
|
<td><%= @total_size - (@count * (@current_page - 1) + index) %></td>
|
29
29
|
<% end %>
|
30
30
|
<td>
|
31
|
-
<%= h(
|
32
|
-
<%= display_tags(
|
31
|
+
<%= h(job.display_class) %>
|
32
|
+
<%= display_tags(job, nil) %>
|
33
33
|
</td>
|
34
34
|
<td>
|
35
|
-
<% a =
|
35
|
+
<% a = job.display_args %>
|
36
36
|
<% if a.inspect.size > 100 %>
|
37
|
-
<span
|
38
|
-
<button data-toggle="
|
39
|
-
<div class="toggle
|
37
|
+
<span id="job_<%= index %>"><%= h(a.inspect[0..100]) + "... " %></span>
|
38
|
+
<button data-toggle="job_<%= index %>" class="btn btn-default btn-xs"><%= t('ShowAll') %></button>
|
39
|
+
<div class="toggle" id="job_<%= index %>_full"><%= display_args(a) %></div>
|
40
40
|
<% else %>
|
41
|
-
<%= display_args(
|
41
|
+
<%= display_args(job.display_args) %>
|
42
42
|
<% end %>
|
43
43
|
</td>
|
44
44
|
<td>
|
45
45
|
<form action="<%= root_path %>queues/<%= CGI.escape(@name) %>/delete" method="post">
|
46
46
|
<%= csrf_tag %>
|
47
|
-
<input name="key_val" value="<%= h
|
47
|
+
<input name="key_val" value="<%= h job.value %>" type="hidden" />
|
48
48
|
<input class="btn btn-danger btn-xs" type="submit" name="delete" value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSure') %>" />
|
49
49
|
</form>
|
50
50
|
</td>
|
@@ -52,4 +52,4 @@
|
|
52
52
|
<% end %>
|
53
53
|
</table>
|
54
54
|
</div>
|
55
|
-
<%= erb :_paging, locals: { url: "#{root_path}queues/#{@name}" } %>
|
55
|
+
<%= erb :_paging, locals: { url: "#{root_path}queues/#{CGI.escape(@name)}" } %>
|
data/web/views/queues.erb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
<h3><%= t('Queues') %></h3>
|
2
2
|
|
3
3
|
<div class="table_container">
|
4
|
-
<table class="queues table table-hover table-bordered table-striped
|
4
|
+
<table class="queues table table-hover table-bordered table-striped">
|
5
5
|
<thead>
|
6
6
|
<th><%= t('Queue') %></th>
|
7
7
|
<th><%= t('Size') %></th>
|
@@ -21,13 +21,13 @@
|
|
21
21
|
<td class="delete-confirm">
|
22
22
|
<form action="<%=root_path %>queues/<%= CGI.escape(queue.name) %>" method="post">
|
23
23
|
<%= csrf_tag %>
|
24
|
-
<input class="btn btn-danger
|
24
|
+
<input class="btn btn-danger" type="submit" name="delete" title="This will delete all jobs within the queue, it will reappear if you push more jobs to it in the future." value="<%= t('Delete') %>" data-confirm="<%= t('AreYouSureDeleteQueue', :queue => h(queue.name)) %>" />
|
25
25
|
|
26
26
|
<% if Sidekiq.pro? %>
|
27
27
|
<% if queue.paused? %>
|
28
|
-
<input class="btn btn-danger
|
28
|
+
<input class="btn btn-danger" type="submit" name="unpause" value="<%= t('Unpause') %>" />
|
29
29
|
<% else %>
|
30
|
-
<input class="btn btn-danger
|
30
|
+
<input class="btn btn-danger" type="submit" name="pause" value="<%= t('Pause') %>" />
|
31
31
|
<% end %>
|
32
32
|
<% end %>
|
33
33
|
</form>
|
data/web/views/retries.erb
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
<form action="<%= root_path %>retries" method="post">
|
15
15
|
<%= csrf_tag %>
|
16
16
|
<div class="table_container">
|
17
|
-
<table class="table table-striped table-bordered table-
|
17
|
+
<table class="table table-striped table-bordered table-hover">
|
18
18
|
<thead>
|
19
19
|
<tr>
|
20
20
|
<th class="table-checkbox checkbox-column">
|
@@ -58,23 +58,23 @@
|
|
58
58
|
<% end %>
|
59
59
|
</table>
|
60
60
|
</div>
|
61
|
-
<input class="btn btn-primary
|
62
|
-
<input class="btn btn-danger
|
63
|
-
<input class="btn btn-danger
|
61
|
+
<input class="btn btn-primary pull-left flip" type="submit" name="retry" value="<%= t('RetryNow') %>" />
|
62
|
+
<input class="btn btn-danger pull-left flip" type="submit" name="delete" value="<%= t('Delete') %>" />
|
63
|
+
<input class="btn btn-danger pull-left flip" type="submit" name="kill" value="<%= t('Kill') %>" />
|
64
64
|
</form>
|
65
65
|
|
66
66
|
<% unfiltered? do %>
|
67
67
|
<form action="<%= root_path %>retries/all/delete" method="post">
|
68
68
|
<%= csrf_tag %>
|
69
|
-
<input class="btn btn-danger
|
69
|
+
<input class="btn btn-danger pull-right flip" type="submit" name="delete" value="<%= t('DeleteAll') %>" data-confirm="<%= t('AreYouSure') %>" />
|
70
70
|
</form>
|
71
71
|
<form action="<%= root_path %>retries/all/retry" method="post">
|
72
72
|
<%= csrf_tag %>
|
73
|
-
<input class="btn btn-danger
|
73
|
+
<input class="btn btn-danger pull-right flip" type="submit" name="retry" value="<%= t('RetryAll') %>" data-confirm="<%= t('AreYouSure') %>" />
|
74
74
|
</form>
|
75
75
|
<form action="<%= root_path %>retries/all/kill" method="post">
|
76
76
|
<%= csrf_tag %>
|
77
|
-
<input class="btn btn-danger
|
77
|
+
<input class="btn btn-danger pull-right flip" type="submit" name="kill" value="<%= t('KillAll') %>" data-confirm="<%= t('AreYouSure') %>" />
|
78
78
|
</form>
|
79
79
|
<% end %>
|
80
80
|
|
data/web/views/retry.erb
CHANGED
data/web/views/scheduled.erb
CHANGED
@@ -15,7 +15,7 @@
|
|
15
15
|
<form action="<%= root_path %>scheduled" method="post">
|
16
16
|
<%= csrf_tag %>
|
17
17
|
<div class="table_container">
|
18
|
-
<table class="table table-striped table-bordered table-
|
18
|
+
<table class="table table-striped table-bordered table-hover">
|
19
19
|
<thead>
|
20
20
|
<tr>
|
21
21
|
<th class="checkbox-column">
|