sidekiq-undertaker 1.0.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +1 -1
- data/.github/dependabot.yml +8 -0
- data/.github/workflows/ruby-build.yml +51 -0
- data/.rspec +2 -0
- data/.rubocop.yml +5 -0
- data/.rubocop_todo.yml +5 -5
- data/.travis.yml +21 -19
- data/CHANGELOG.md +100 -0
- data/README.md +4 -1
- data/Rakefile +2 -0
- data/lib/sidekiq/undertaker/dead_job.rb +1 -1
- data/lib/sidekiq/undertaker/version.rb +1 -1
- data/lib/sidekiq/undertaker/web_extension.rb +2 -0
- data/lib/sidekiq/undertaker.rb +1 -1
- data/renovate.json +5 -0
- data/sidekiq-undertaker.gemspec +15 -10
- data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_filter_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +15 -16
- data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +15 -16
- data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +15 -16
- data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_all_failures_and_errors/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +18 -19
- data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +18 -19
- data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/with_pagination/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +18 -19
- data/spec/sidekiq/undertaker/job_distributor_spec.rb +6 -6
- data/spec/sidekiq/undertaker/job_filter_spec.rb +3 -3
- data/spec/sidekiq/undertaker/web_extension_spec.rb +18 -2
- data/spec/spec_helper.rb +4 -5
- metadata +40 -37
- data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_filter_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt +0 -240
- data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt +0 -241
- data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt +0 -241
- data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_all_failures_and_errors/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt +0 -319
- data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt +0 -277
- data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_specific_job_class_and_a_specific_error/with_pagination/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv5.approved.txt +0 -1303
@@ -9,15 +9,16 @@
|
|
9
9
|
|
10
10
|
|
11
11
|
<link href="/sidekiq/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
|
12
|
-
<link href="/sidekiq/stylesheets/application-dark.css" media="screen" rel="stylesheet" type="text/css" />
|
12
|
+
<link href="/sidekiq/stylesheets/application-dark.css" media="screen and (prefers-color-scheme: dark)" rel="stylesheet" type="text/css" />
|
13
13
|
|
14
14
|
|
15
|
+
<link rel="apple-touch-icon" href="/sidekiq/images/apple-touch-icon.png">
|
15
16
|
<link rel="shortcut icon" type="image/ico" href="/sidekiq/images/favicon.ico" />
|
16
17
|
<script type="text/javascript" src="/sidekiq/javascripts/application.js"></script>
|
17
18
|
<meta name="google" content="notranslate" />
|
18
19
|
|
19
20
|
</head>
|
20
|
-
<body class="admin" data-
|
21
|
+
<body class="admin" data-locale="en">
|
21
22
|
<div class="navbar navbar-default navbar-fixed-top">
|
22
23
|
<div class="container-fluid">
|
23
24
|
<div class="navbar-header" data-navbar="static">
|
@@ -28,9 +29,8 @@
|
|
28
29
|
</button>
|
29
30
|
<div class="navbar-toggle collapsed navbar-livereload">
|
30
31
|
|
31
|
-
|
32
|
-
<a
|
33
|
-
|
32
|
+
<a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
|
33
|
+
<a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
|
34
34
|
|
35
35
|
|
36
36
|
|
@@ -94,9 +94,8 @@
|
|
94
94
|
<li class="navbar-livereload">
|
95
95
|
<div class="poll-wrapper">
|
96
96
|
|
97
|
-
|
98
|
-
<a
|
99
|
-
|
97
|
+
<a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
|
98
|
+
<a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
|
100
99
|
|
101
100
|
|
102
101
|
|
@@ -113,40 +112,40 @@
|
|
113
112
|
<div class="col-sm-12 summary_bar">
|
114
113
|
<ul class="list-unstyled summary row">
|
115
114
|
<li class="processed col-sm-1">
|
116
|
-
<span class="count">0</span>
|
115
|
+
<span id="txtProcessed" class="count">0</span>
|
117
116
|
<span class="desc">Processed</span>
|
118
117
|
</li>
|
119
118
|
<li class="failed col-sm-1">
|
120
|
-
<span class="count">0</span>
|
119
|
+
<span id="txtFailed" class="count">0</span>
|
121
120
|
<span class="desc">Failed</span>
|
122
121
|
</li>
|
123
122
|
<li class="busy col-sm-1">
|
124
123
|
<a href="/sidekiq/busy">
|
125
|
-
<span class="count">0</span>
|
124
|
+
<span id="txtBusy" class="count">0</span>
|
126
125
|
<span class="desc">Busy</span>
|
127
126
|
</a>
|
128
127
|
</li>
|
129
128
|
<li class="enqueued col-sm-1">
|
130
129
|
<a href="/sidekiq/queues">
|
131
|
-
<span class="count">0</span>
|
130
|
+
<span id="txtEnqueued" class="count">0</span>
|
132
131
|
<span class="desc">Enqueued</span>
|
133
132
|
</a>
|
134
133
|
</li>
|
135
134
|
<li class="retries col-sm-1">
|
136
135
|
<a href="/sidekiq/retries">
|
137
|
-
<span class="count">0</span>
|
136
|
+
<span id="txtRetries" class="count">0</span>
|
138
137
|
<span class="desc">Retries</span>
|
139
138
|
</a>
|
140
139
|
</li>
|
141
140
|
<li class="scheduled col-sm-1">
|
142
141
|
<a href="/sidekiq/scheduled">
|
143
|
-
<span class="count">0</span>
|
142
|
+
<span id="txtScheduled" class="count">0</span>
|
144
143
|
<span class="desc">Scheduled</span>
|
145
144
|
</a>
|
146
145
|
</li>
|
147
146
|
<li class="dead col-sm-1">
|
148
147
|
<a href="/sidekiq/morgue">
|
149
|
-
<span class="count">4</span>
|
148
|
+
<span id="txtDead" class="count">4</span>
|
150
149
|
<span class="desc">Dead</span>
|
151
150
|
</a>
|
152
151
|
</li>
|
@@ -228,7 +227,7 @@
|
|
228
227
|
<p class="navbar-text redis-url" title="redis://127.0.0.1:6379/0">redis://127.0.0.1:6379/0</p>
|
229
228
|
</li>
|
230
229
|
<li>
|
231
|
-
<p class="navbar-text server-utc-time">20:57:00 UTC</p>
|
230
|
+
<p id="serverUtcTime" class="navbar-text server-utc-time">20:57:00 UTC</p>
|
232
231
|
</li>
|
233
232
|
<li>
|
234
233
|
<p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>
|
@@ -9,15 +9,16 @@
|
|
9
9
|
|
10
10
|
|
11
11
|
<link href="/sidekiq/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
|
12
|
-
<link href="/sidekiq/stylesheets/application-dark.css" media="screen" rel="stylesheet" type="text/css" />
|
12
|
+
<link href="/sidekiq/stylesheets/application-dark.css" media="screen and (prefers-color-scheme: dark)" rel="stylesheet" type="text/css" />
|
13
13
|
|
14
14
|
|
15
|
+
<link rel="apple-touch-icon" href="/sidekiq/images/apple-touch-icon.png">
|
15
16
|
<link rel="shortcut icon" type="image/ico" href="/sidekiq/images/favicon.ico" />
|
16
17
|
<script type="text/javascript" src="/sidekiq/javascripts/application.js"></script>
|
17
18
|
<meta name="google" content="notranslate" />
|
18
19
|
|
19
20
|
</head>
|
20
|
-
<body class="admin" data-
|
21
|
+
<body class="admin" data-locale="en">
|
21
22
|
<div class="navbar navbar-default navbar-fixed-top">
|
22
23
|
<div class="container-fluid">
|
23
24
|
<div class="navbar-header" data-navbar="static">
|
@@ -28,9 +29,8 @@
|
|
28
29
|
</button>
|
29
30
|
<div class="navbar-toggle collapsed navbar-livereload">
|
30
31
|
|
31
|
-
|
32
|
-
<a
|
33
|
-
|
32
|
+
<a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
|
33
|
+
<a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
|
34
34
|
|
35
35
|
|
36
36
|
|
@@ -94,9 +94,8 @@
|
|
94
94
|
<li class="navbar-livereload">
|
95
95
|
<div class="poll-wrapper">
|
96
96
|
|
97
|
-
|
98
|
-
<a
|
99
|
-
|
97
|
+
<a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
|
98
|
+
<a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
|
100
99
|
|
101
100
|
|
102
101
|
|
@@ -113,40 +112,40 @@
|
|
113
112
|
<div class="col-sm-12 summary_bar">
|
114
113
|
<ul class="list-unstyled summary row">
|
115
114
|
<li class="processed col-sm-1">
|
116
|
-
<span class="count">0</span>
|
115
|
+
<span id="txtProcessed" class="count">0</span>
|
117
116
|
<span class="desc">Processed</span>
|
118
117
|
</li>
|
119
118
|
<li class="failed col-sm-1">
|
120
|
-
<span class="count">0</span>
|
119
|
+
<span id="txtFailed" class="count">0</span>
|
121
120
|
<span class="desc">Failed</span>
|
122
121
|
</li>
|
123
122
|
<li class="busy col-sm-1">
|
124
123
|
<a href="/sidekiq/busy">
|
125
|
-
<span class="count">0</span>
|
124
|
+
<span id="txtBusy" class="count">0</span>
|
126
125
|
<span class="desc">Busy</span>
|
127
126
|
</a>
|
128
127
|
</li>
|
129
128
|
<li class="enqueued col-sm-1">
|
130
129
|
<a href="/sidekiq/queues">
|
131
|
-
<span class="count">0</span>
|
130
|
+
<span id="txtEnqueued" class="count">0</span>
|
132
131
|
<span class="desc">Enqueued</span>
|
133
132
|
</a>
|
134
133
|
</li>
|
135
134
|
<li class="retries col-sm-1">
|
136
135
|
<a href="/sidekiq/retries">
|
137
|
-
<span class="count">0</span>
|
136
|
+
<span id="txtRetries" class="count">0</span>
|
138
137
|
<span class="desc">Retries</span>
|
139
138
|
</a>
|
140
139
|
</li>
|
141
140
|
<li class="scheduled col-sm-1">
|
142
141
|
<a href="/sidekiq/scheduled">
|
143
|
-
<span class="count">0</span>
|
142
|
+
<span id="txtScheduled" class="count">0</span>
|
144
143
|
<span class="desc">Scheduled</span>
|
145
144
|
</a>
|
146
145
|
</li>
|
147
146
|
<li class="dead col-sm-1">
|
148
147
|
<a href="/sidekiq/morgue">
|
149
|
-
<span class="count">4</span>
|
148
|
+
<span id="txtDead" class="count">4</span>
|
150
149
|
<span class="desc">Dead</span>
|
151
150
|
</a>
|
152
151
|
</li>
|
@@ -174,7 +173,7 @@
|
|
174
173
|
|
175
174
|
|
176
175
|
<form action="/sidekiq/undertaker/morgue" method="post">
|
177
|
-
<input type='hidden' name='authenticity_token' value=''/>
|
176
|
+
<input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
|
178
177
|
<table class="table table-striped table-bordered table-white">
|
179
178
|
<thead>
|
180
179
|
<tr>
|
@@ -281,12 +280,12 @@
|
|
281
280
|
</form>
|
282
281
|
|
283
282
|
<form action="/sidekiq/undertaker/morgue/all/all/total_dead/delete" method="post">
|
284
|
-
<input type='hidden' name='authenticity_token' value=''/>
|
283
|
+
<input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
|
285
284
|
<input class="btn btn-danger btn-xs pull-right" type="submit" name="delete" value="Bury All" data-confirm="Are you sure?" />
|
286
285
|
</form>
|
287
286
|
|
288
287
|
<form action="/sidekiq/undertaker/morgue/all/all/total_dead/retry" method="post">
|
289
|
-
<input type='hidden' name='authenticity_token' value=''/>
|
288
|
+
<input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
|
290
289
|
<input class="btn btn-danger btn-xs pull-right" type="submit" name="retry" value="Revive All" data-confirm="Are you sure?" />
|
291
290
|
</form>
|
292
291
|
|
@@ -306,7 +305,7 @@
|
|
306
305
|
<p class="navbar-text redis-url" title="redis://127.0.0.1:6379/0">redis://127.0.0.1:6379/0</p>
|
307
306
|
</li>
|
308
307
|
<li>
|
309
|
-
<p class="navbar-text server-utc-time">20:57:00 UTC</p>
|
308
|
+
<p id="serverUtcTime" class="navbar-text server-utc-time">20:57:00 UTC</p>
|
310
309
|
</li>
|
311
310
|
<li>
|
312
311
|
<p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>
|
@@ -9,15 +9,16 @@
|
|
9
9
|
|
10
10
|
|
11
11
|
<link href="/sidekiq/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
|
12
|
-
<link href="/sidekiq/stylesheets/application-dark.css" media="screen" rel="stylesheet" type="text/css" />
|
12
|
+
<link href="/sidekiq/stylesheets/application-dark.css" media="screen and (prefers-color-scheme: dark)" rel="stylesheet" type="text/css" />
|
13
13
|
|
14
14
|
|
15
|
+
<link rel="apple-touch-icon" href="/sidekiq/images/apple-touch-icon.png">
|
15
16
|
<link rel="shortcut icon" type="image/ico" href="/sidekiq/images/favicon.ico" />
|
16
17
|
<script type="text/javascript" src="/sidekiq/javascripts/application.js"></script>
|
17
18
|
<meta name="google" content="notranslate" />
|
18
19
|
|
19
20
|
</head>
|
20
|
-
<body class="admin" data-
|
21
|
+
<body class="admin" data-locale="en">
|
21
22
|
<div class="navbar navbar-default navbar-fixed-top">
|
22
23
|
<div class="container-fluid">
|
23
24
|
<div class="navbar-header" data-navbar="static">
|
@@ -28,9 +29,8 @@
|
|
28
29
|
</button>
|
29
30
|
<div class="navbar-toggle collapsed navbar-livereload">
|
30
31
|
|
31
|
-
|
32
|
-
<a
|
33
|
-
|
32
|
+
<a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
|
33
|
+
<a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
|
34
34
|
|
35
35
|
|
36
36
|
|
@@ -94,9 +94,8 @@
|
|
94
94
|
<li class="navbar-livereload">
|
95
95
|
<div class="poll-wrapper">
|
96
96
|
|
97
|
-
|
98
|
-
<a
|
99
|
-
|
97
|
+
<a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
|
98
|
+
<a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
|
100
99
|
|
101
100
|
|
102
101
|
|
@@ -113,40 +112,40 @@
|
|
113
112
|
<div class="col-sm-12 summary_bar">
|
114
113
|
<ul class="list-unstyled summary row">
|
115
114
|
<li class="processed col-sm-1">
|
116
|
-
<span class="count">0</span>
|
115
|
+
<span id="txtProcessed" class="count">0</span>
|
117
116
|
<span class="desc">Processed</span>
|
118
117
|
</li>
|
119
118
|
<li class="failed col-sm-1">
|
120
|
-
<span class="count">0</span>
|
119
|
+
<span id="txtFailed" class="count">0</span>
|
121
120
|
<span class="desc">Failed</span>
|
122
121
|
</li>
|
123
122
|
<li class="busy col-sm-1">
|
124
123
|
<a href="/sidekiq/busy">
|
125
|
-
<span class="count">0</span>
|
124
|
+
<span id="txtBusy" class="count">0</span>
|
126
125
|
<span class="desc">Busy</span>
|
127
126
|
</a>
|
128
127
|
</li>
|
129
128
|
<li class="enqueued col-sm-1">
|
130
129
|
<a href="/sidekiq/queues">
|
131
|
-
<span class="count">0</span>
|
130
|
+
<span id="txtEnqueued" class="count">0</span>
|
132
131
|
<span class="desc">Enqueued</span>
|
133
132
|
</a>
|
134
133
|
</li>
|
135
134
|
<li class="retries col-sm-1">
|
136
135
|
<a href="/sidekiq/retries">
|
137
|
-
<span class="count">0</span>
|
136
|
+
<span id="txtRetries" class="count">0</span>
|
138
137
|
<span class="desc">Retries</span>
|
139
138
|
</a>
|
140
139
|
</li>
|
141
140
|
<li class="scheduled col-sm-1">
|
142
141
|
<a href="/sidekiq/scheduled">
|
143
|
-
<span class="count">0</span>
|
142
|
+
<span id="txtScheduled" class="count">0</span>
|
144
143
|
<span class="desc">Scheduled</span>
|
145
144
|
</a>
|
146
145
|
</li>
|
147
146
|
<li class="dead col-sm-1">
|
148
147
|
<a href="/sidekiq/morgue">
|
149
|
-
<span class="count">4</span>
|
148
|
+
<span id="txtDead" class="count">4</span>
|
150
149
|
<span class="desc">Dead</span>
|
151
150
|
</a>
|
152
151
|
</li>
|
@@ -174,7 +173,7 @@
|
|
174
173
|
|
175
174
|
|
176
175
|
<form action="/sidekiq/undertaker/morgue" method="post">
|
177
|
-
<input type='hidden' name='authenticity_token' value=''/>
|
176
|
+
<input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
|
178
177
|
<table class="table table-striped table-bordered table-white">
|
179
178
|
<thead>
|
180
179
|
<tr>
|
@@ -239,12 +238,12 @@
|
|
239
238
|
</form>
|
240
239
|
|
241
240
|
<form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour/delete" method="post">
|
242
|
-
<input type='hidden' name='authenticity_token' value=''/>
|
241
|
+
<input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
|
243
242
|
<input class="btn btn-danger btn-xs pull-right" type="submit" name="delete" value="Bury All" data-confirm="Are you sure?" />
|
244
243
|
</form>
|
245
244
|
|
246
245
|
<form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour/retry" method="post">
|
247
|
-
<input type='hidden' name='authenticity_token' value=''/>
|
246
|
+
<input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
|
248
247
|
<input class="btn btn-danger btn-xs pull-right" type="submit" name="retry" value="Revive All" data-confirm="Are you sure?" />
|
249
248
|
</form>
|
250
249
|
|
@@ -264,7 +263,7 @@
|
|
264
263
|
<p class="navbar-text redis-url" title="redis://127.0.0.1:6379/0">redis://127.0.0.1:6379/0</p>
|
265
264
|
</li>
|
266
265
|
<li>
|
267
|
-
<p class="navbar-text server-utc-time">20:57:00 UTC</p>
|
266
|
+
<p id="serverUtcTime" class="navbar-text server-utc-time">20:57:00 UTC</p>
|
268
267
|
</li>
|
269
268
|
<li>
|
270
269
|
<p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>
|
@@ -9,15 +9,16 @@
|
|
9
9
|
|
10
10
|
|
11
11
|
<link href="/sidekiq/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css" />
|
12
|
-
<link href="/sidekiq/stylesheets/application-dark.css" media="screen" rel="stylesheet" type="text/css" />
|
12
|
+
<link href="/sidekiq/stylesheets/application-dark.css" media="screen and (prefers-color-scheme: dark)" rel="stylesheet" type="text/css" />
|
13
13
|
|
14
14
|
|
15
|
+
<link rel="apple-touch-icon" href="/sidekiq/images/apple-touch-icon.png">
|
15
16
|
<link rel="shortcut icon" type="image/ico" href="/sidekiq/images/favicon.ico" />
|
16
17
|
<script type="text/javascript" src="/sidekiq/javascripts/application.js"></script>
|
17
18
|
<meta name="google" content="notranslate" />
|
18
19
|
|
19
20
|
</head>
|
20
|
-
<body class="admin" data-
|
21
|
+
<body class="admin" data-locale="en">
|
21
22
|
<div class="navbar navbar-default navbar-fixed-top">
|
22
23
|
<div class="container-fluid">
|
23
24
|
<div class="navbar-header" data-navbar="static">
|
@@ -28,9 +29,8 @@
|
|
28
29
|
</button>
|
29
30
|
<div class="navbar-toggle collapsed navbar-livereload">
|
30
31
|
|
31
|
-
|
32
|
-
<a
|
33
|
-
|
32
|
+
<a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
|
33
|
+
<a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
|
34
34
|
|
35
35
|
|
36
36
|
|
@@ -94,9 +94,8 @@
|
|
94
94
|
<li class="navbar-livereload">
|
95
95
|
<div class="poll-wrapper">
|
96
96
|
|
97
|
-
|
98
|
-
<a
|
99
|
-
|
97
|
+
<a class="live-poll-start live-poll btn btn-primary">Live Poll</a>
|
98
|
+
<a class="live-poll-stop live-poll btn btn-primary active">Stop Polling</a>
|
100
99
|
|
101
100
|
|
102
101
|
|
@@ -113,40 +112,40 @@
|
|
113
112
|
<div class="col-sm-12 summary_bar">
|
114
113
|
<ul class="list-unstyled summary row">
|
115
114
|
<li class="processed col-sm-1">
|
116
|
-
<span class="count">0</span>
|
115
|
+
<span id="txtProcessed" class="count">0</span>
|
117
116
|
<span class="desc">Processed</span>
|
118
117
|
</li>
|
119
118
|
<li class="failed col-sm-1">
|
120
|
-
<span class="count">0</span>
|
119
|
+
<span id="txtFailed" class="count">0</span>
|
121
120
|
<span class="desc">Failed</span>
|
122
121
|
</li>
|
123
122
|
<li class="busy col-sm-1">
|
124
123
|
<a href="/sidekiq/busy">
|
125
|
-
<span class="count">0</span>
|
124
|
+
<span id="txtBusy" class="count">0</span>
|
126
125
|
<span class="desc">Busy</span>
|
127
126
|
</a>
|
128
127
|
</li>
|
129
128
|
<li class="enqueued col-sm-1">
|
130
129
|
<a href="/sidekiq/queues">
|
131
|
-
<span class="count">0</span>
|
130
|
+
<span id="txtEnqueued" class="count">0</span>
|
132
131
|
<span class="desc">Enqueued</span>
|
133
132
|
</a>
|
134
133
|
</li>
|
135
134
|
<li class="retries col-sm-1">
|
136
135
|
<a href="/sidekiq/retries">
|
137
|
-
<span class="count">0</span>
|
136
|
+
<span id="txtRetries" class="count">0</span>
|
138
137
|
<span class="desc">Retries</span>
|
139
138
|
</a>
|
140
139
|
</li>
|
141
140
|
<li class="scheduled col-sm-1">
|
142
141
|
<a href="/sidekiq/scheduled">
|
143
|
-
<span class="count">0</span>
|
142
|
+
<span id="txtScheduled" class="count">0</span>
|
144
143
|
<span class="desc">Scheduled</span>
|
145
144
|
</a>
|
146
145
|
</li>
|
147
146
|
<li class="dead col-sm-1">
|
148
147
|
<a href="/sidekiq/morgue">
|
149
|
-
<span class="count">54</span>
|
148
|
+
<span id="txtDead" class="count">54</span>
|
150
149
|
<span class="desc">Dead</span>
|
151
150
|
</a>
|
152
151
|
</li>
|
@@ -192,7 +191,7 @@
|
|
192
191
|
|
193
192
|
|
194
193
|
<form action="/sidekiq/undertaker/morgue" method="post">
|
195
|
-
<input type='hidden' name='authenticity_token' value=''/>
|
194
|
+
<input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
|
196
195
|
<table class="table table-striped table-bordered table-white">
|
197
196
|
<thead>
|
198
197
|
<tr>
|
@@ -1265,12 +1264,12 @@
|
|
1265
1264
|
</form>
|
1266
1265
|
|
1267
1266
|
<form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour/delete" method="post">
|
1268
|
-
<input type='hidden' name='authenticity_token' value=''/>
|
1267
|
+
<input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
|
1269
1268
|
<input class="btn btn-danger btn-xs pull-right" type="submit" name="delete" value="Bury All" data-confirm="Are you sure?" />
|
1270
1269
|
</form>
|
1271
1270
|
|
1272
1271
|
<form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour/retry" method="post">
|
1273
|
-
<input type='hidden' name='authenticity_token' value=''/>
|
1272
|
+
<input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
|
1274
1273
|
<input class="btn btn-danger btn-xs pull-right" type="submit" name="retry" value="Revive All" data-confirm="Are you sure?" />
|
1275
1274
|
</form>
|
1276
1275
|
|
@@ -1290,7 +1289,7 @@
|
|
1290
1289
|
<p class="navbar-text redis-url" title="redis://127.0.0.1:6379/0">redis://127.0.0.1:6379/0</p>
|
1291
1290
|
</li>
|
1292
1291
|
<li>
|
1293
|
-
<p class="navbar-text server-utc-time">20:57:00 UTC</p>
|
1292
|
+
<p id="serverUtcTime" class="navbar-text server-utc-time">20:57:00 UTC</p>
|
1294
1293
|
</li>
|
1295
1294
|
<li>
|
1296
1295
|
<p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>
|
@@ -6,28 +6,28 @@ module Sidekiq
|
|
6
6
|
module Undertaker
|
7
7
|
describe JobDistributor do
|
8
8
|
let(:job1) do
|
9
|
-
instance_double(Sidekiq::
|
9
|
+
instance_double(Sidekiq::JobRecord, item: {
|
10
10
|
"class" => "A",
|
11
11
|
"failed_at" => 1,
|
12
12
|
"error_class" => "E1"
|
13
13
|
})
|
14
14
|
end
|
15
15
|
let(:job2) do
|
16
|
-
instance_double(Sidekiq::
|
16
|
+
instance_double(Sidekiq::JobRecord, item: {
|
17
17
|
"class" => "A",
|
18
18
|
"failed_at" => 1,
|
19
19
|
"error_class" => "E1"
|
20
20
|
})
|
21
21
|
end
|
22
22
|
let(:job3) do
|
23
|
-
instance_double(Sidekiq::
|
23
|
+
instance_double(Sidekiq::JobRecord, item: {
|
24
24
|
"class" => "B",
|
25
25
|
"failed_at" => 1,
|
26
26
|
"error_class" => "E1"
|
27
27
|
})
|
28
28
|
end
|
29
29
|
let(:job4) do
|
30
|
-
instance_double(Sidekiq::
|
30
|
+
instance_double(Sidekiq::JobRecord, item: {
|
31
31
|
"class" => "B",
|
32
32
|
"failed_at" => 1,
|
33
33
|
"error_class" => "E2"
|
@@ -66,7 +66,7 @@ module Sidekiq
|
|
66
66
|
|
67
67
|
let(:dead_jobs) { [dead_job1, dead_job2, dead_job3, dead_job4] }
|
68
68
|
|
69
|
-
# rubocop:disable
|
69
|
+
# rubocop:disable Layout/LineLength
|
70
70
|
describe "#group_by_job_class" do
|
71
71
|
subject(:distribution) { described_class.new(dead_jobs).group_by_job_class }
|
72
72
|
|
@@ -98,7 +98,7 @@ module Sidekiq
|
|
98
98
|
expect(distribution).to eq expected_distribution
|
99
99
|
end
|
100
100
|
end
|
101
|
-
# rubocop:enable
|
101
|
+
# rubocop:enable Layout/LineLength
|
102
102
|
end
|
103
103
|
end
|
104
104
|
end
|
@@ -7,7 +7,7 @@ module Sidekiq
|
|
7
7
|
describe JobFilter do
|
8
8
|
describe ".filter_dead_jobs" do
|
9
9
|
let(:job1) do
|
10
|
-
instance_double(Sidekiq::
|
10
|
+
instance_double(Sidekiq::JobRecord, item: {
|
11
11
|
"class" => "HardWorkTask",
|
12
12
|
"failed_at" => Time.now.to_i - 5 * 60,
|
13
13
|
"error_class" => "NoMethodError"
|
@@ -15,7 +15,7 @@ module Sidekiq
|
|
15
15
|
end
|
16
16
|
|
17
17
|
let(:job2) do
|
18
|
-
instance_double(Sidekiq::
|
18
|
+
instance_double(Sidekiq::JobRecord, item: {
|
19
19
|
"class" => "HardWorkTask",
|
20
20
|
"failed_at" => Time.now.to_i - 2 * 60 * 60,
|
21
21
|
"error_class" => "RandomError"
|
@@ -23,7 +23,7 @@ module Sidekiq
|
|
23
23
|
end
|
24
24
|
|
25
25
|
let(:job3) do
|
26
|
-
instance_double(Sidekiq::
|
26
|
+
instance_double(Sidekiq::JobRecord, item: {
|
27
27
|
"class" => "LazyWorkTask",
|
28
28
|
"failed_at" => Time.now.to_i - 2 * 60 * 60,
|
29
29
|
"error_class" => "NoMethodError"
|
@@ -13,7 +13,13 @@ module Sidekiq
|
|
13
13
|
describe WebExtension, type: :controller do
|
14
14
|
include Rack::Test::Methods
|
15
15
|
|
16
|
-
let(:app)
|
16
|
+
let(:app) do
|
17
|
+
Sidekiq::Web.new.tap do |app|
|
18
|
+
# In order to use the Web UI of Sidekiq `6.2` a session is required
|
19
|
+
# SEE: https://github.com/mperham/sidekiq/blob/master/Changes.md#620
|
20
|
+
app.use Rack::Session::Cookie, secret: "A-Test-Web-Session-Secret"
|
21
|
+
end
|
22
|
+
end
|
17
23
|
let(:job_refs) { [] }
|
18
24
|
|
19
25
|
let(:jid1) { "4416aa76eb8cf03f56a49220" }
|
@@ -43,8 +49,9 @@ module Sidekiq
|
|
43
49
|
job_refs.push add_dead("jid" => jid4, "class" => "HardWorker1", "error_class" => "NoMethodError")
|
44
50
|
|
45
51
|
allow_any_instance_of(Sidekiq::WebAction).to receive(:root_path).and_return("/sidekiq/")
|
52
|
+
|
53
|
+
allow_any_instance_of(::Sidekiq::Web::CsrfProtection).to receive(:valid_token?).and_return(true)
|
46
54
|
end
|
47
|
-
# rubocop:enable RSpec/AnyInstance
|
48
55
|
|
49
56
|
after { Timecop.return }
|
50
57
|
|
@@ -69,6 +76,10 @@ module Sidekiq
|
|
69
76
|
end
|
70
77
|
|
71
78
|
describe "show filter" do
|
79
|
+
before do
|
80
|
+
allow_any_instance_of(Sidekiq::Web::CsrfProtection).to receive(:mask_token).and_return("stubbed-csrf-token")
|
81
|
+
end
|
82
|
+
|
72
83
|
# /undertaker/filter
|
73
84
|
context "when filter page is called" do
|
74
85
|
subject { get "/undertaker/filter" }
|
@@ -92,6 +103,10 @@ module Sidekiq
|
|
92
103
|
end
|
93
104
|
|
94
105
|
describe "show morgue" do
|
106
|
+
before do
|
107
|
+
allow_any_instance_of(Sidekiq::Web::CsrfProtection).to receive(:mask_token).and_return("stubbed-csrf-token")
|
108
|
+
end
|
109
|
+
|
95
110
|
# /undertaker/morgue/:job_class/:error_class/:bucket_name
|
96
111
|
context "when job-class/error/bucket is called" do
|
97
112
|
context "with specific job-class and a specific error" do
|
@@ -117,6 +132,7 @@ module Sidekiq
|
|
117
132
|
end
|
118
133
|
end
|
119
134
|
end
|
135
|
+
# rubocop:enable RSpec/AnyInstance
|
120
136
|
|
121
137
|
describe "delete" do
|
122
138
|
context "when job-class, error and bucket are given" do
|
data/spec/spec_helper.rb
CHANGED
@@ -36,15 +36,14 @@ RSpec.configure do |config|
|
|
36
36
|
config.run_all_when_everything_filtered = true
|
37
37
|
config.filter_run :focus
|
38
38
|
|
39
|
+
config.approvals_default_format = :txt
|
40
|
+
|
39
41
|
# Run specs in random order to surface order dependencies. If you find an
|
40
42
|
# order dependency and want to debug it, you can fix the order by providing
|
41
43
|
# the seed, which is printed after each run.
|
42
44
|
# --seed 1234
|
43
45
|
config.order = "random"
|
44
|
-
|
45
|
-
RSpec.configure do |con|
|
46
|
-
con.approvals_default_format = :txt
|
47
|
-
end
|
46
|
+
Kernel.srand config.seed
|
48
47
|
|
49
48
|
config.before do
|
50
49
|
::Sidekiq.redis(&:flushdb)
|
@@ -56,7 +55,7 @@ def apply_custom_excludes(data)
|
|
56
55
|
end
|
57
56
|
|
58
57
|
def build_job(item)
|
59
|
-
Sidekiq::
|
58
|
+
Sidekiq::JobRecord.new(item)
|
60
59
|
end
|
61
60
|
|
62
61
|
def job_to_sorted_entry(job, score: Time.now.utc.to_i, set: Sidekiq::SortedSet.new("test-jobs"))
|