sidekiq-undertaker 1.2.0 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby-build.yml +31 -3
  3. data/.rubocop.yml +4 -0
  4. data/.rubocop_codeclimate.yml +9 -0
  5. data/CHANGELOG.md +19 -0
  6. data/README.md +8 -6
  7. data/assets/Undertaker_demo_1_job_1_error.png +0 -0
  8. data/assets/Undertaker_demo_1_job_all_errors.png +0 -0
  9. data/assets/Undertaker_demo_all_errors.png +0 -0
  10. data/assets/Undertaker_demo_all_jobs.png +0 -0
  11. data/assets/Undertaker_demo_all_jobs_1_error.png +0 -0
  12. data/lib/sidekiq/undertaker/dead_job.rb +10 -2
  13. data/lib/sidekiq/undertaker/job_distributor.rb +4 -0
  14. data/lib/sidekiq/undertaker/job_filter.rb +7 -2
  15. data/lib/sidekiq/undertaker/version.rb +1 -1
  16. data/lib/sidekiq/undertaker/web_extension/api_helpers.rb +104 -26
  17. data/lib/sidekiq/undertaker/web_extension.rb +17 -8
  18. data/sidekiq-undertaker.gemspec +4 -4
  19. 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 +19 -3
  20. 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 +24 -24
  21. 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 +24 -24
  22. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classerror_classbucket_page_is_called/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +231 -0
  23. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_filter/when_job_classerror_classbucket_page_is_polled/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +231 -0
  24. 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 +13 -6
  25. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_job_class_error_and_specific_error_message/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +284 -0
  26. data/spec/fixtures/approvals/sidekiq_undertaker_webextension/show_morgue/when_job_classerrorbucket_is_called/with_job_class_error_and_specific_error_message/with_pagination/behaves_like_a_page/the_displayed_page_is_correct_for_sidekiqv6.approved.txt +1310 -0
  27. 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 +11 -4
  28. 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 +59 -52
  29. data/spec/sidekiq/undertaker/dead_jobs_spec.rb +7 -4
  30. data/spec/sidekiq/undertaker/job_distributor_spec.rb +41 -19
  31. data/spec/sidekiq/undertaker/job_filter_spec.rb +26 -9
  32. data/spec/sidekiq/undertaker/web_extension_spec.rb +172 -14
  33. data/spec/spec_helper.rb +4 -0
  34. data/web/locales/en.yml +2 -0
  35. data/web/views/filter.erb +17 -1
  36. data/web/views/filter_job_class.erb +8 -8
  37. data/web/views/filter_job_class_error_class.erb +36 -0
  38. data/web/views/morgue.erb +9 -2
  39. metadata +73 -66
  40. data/.travis.yml +0 -51
  41. data/Demo_Filter.png +0 -0
  42. data/Demo_Job_Filter.png +0 -0
  43. data/Demo_Morgue_1_Job.png +0 -0
  44. data/Demo_Morgue_all.png +0 -0
@@ -178,36 +178,36 @@
178
178
  </thead>
179
179
 
180
180
  <tr>
181
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/total_dead'>all</a></td>
182
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/total_dead'>3</a></td>
183
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/1_hour'>3</a></td>
184
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/3_hours'>0</a></td>
185
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/1_day'>0</a></td>
186
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/3_days'>0</a></td>
187
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/1_week'>0</a></td>
188
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/older'>0</a></td>
181
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/all/total_dead'>all</a></td>
182
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/all/total_dead'>3</a></td>
183
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/all/1_hour'>3</a></td>
184
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/all/3_hours'>0</a></td>
185
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/all/1_day'>0</a></td>
186
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/all/3_days'>0</a></td>
187
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/all/1_week'>0</a></td>
188
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/all/older'>0</a></td>
189
189
  </tr>
190
190
 
191
191
  <tr>
192
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/total_dead'>RuntimeError</a></td>
193
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/total_dead'>2</a></td>
194
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour'>2</a></td>
195
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/3_hours'>0</a></td>
196
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_day'>0</a></td>
197
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/3_days'>0</a></td>
198
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_week'>0</a></td>
199
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/older'>0</a></td>
192
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/all/total_dead'>RuntimeError</a></td>
193
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/RuntimeError/total_dead'>2</a></td>
194
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/RuntimeError/1_hour'>2</a></td>
195
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/RuntimeError/3_hours'>0</a></td>
196
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/RuntimeError/1_day'>0</a></td>
197
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/RuntimeError/3_days'>0</a></td>
198
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/RuntimeError/1_week'>0</a></td>
199
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/RuntimeError/older'>0</a></td>
200
200
  </tr>
201
201
 
202
202
  <tr>
203
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/total_dead'>NoMethodError</a></td>
204
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/total_dead'>1</a></td>
205
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/1_hour'>1</a></td>
206
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/3_hours'>0</a></td>
207
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/1_day'>0</a></td>
208
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/3_days'>0</a></td>
209
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/1_week'>0</a></td>
210
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/older'>0</a></td>
203
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/all/total_dead'>NoMethodError</a></td>
204
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/NoMethodError/total_dead'>1</a></td>
205
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/NoMethodError/1_hour'>1</a></td>
206
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/NoMethodError/3_hours'>0</a></td>
207
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/NoMethodError/1_day'>0</a></td>
208
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/NoMethodError/3_days'>0</a></td>
209
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/NoMethodError/1_week'>0</a></td>
210
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/NoMethodError/older'>0</a></td>
211
211
  </tr>
212
212
 
213
213
  </table>
@@ -178,36 +178,36 @@
178
178
  </thead>
179
179
 
180
180
  <tr>
181
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/total_dead'>all</a></td>
182
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/total_dead'>3</a></td>
183
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/1_hour'>3</a></td>
184
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/3_hours'>0</a></td>
185
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/1_day'>0</a></td>
186
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/3_days'>0</a></td>
187
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/1_week'>0</a></td>
188
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/older'>0</a></td>
181
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/all/all/total_dead'>all</a></td>
182
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/all/total_dead'>3</a></td>
183
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/all/1_hour'>3</a></td>
184
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/all/3_hours'>0</a></td>
185
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/all/1_day'>0</a></td>
186
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/all/3_days'>0</a></td>
187
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/all/1_week'>0</a></td>
188
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/all/older'>0</a></td>
189
189
  </tr>
190
190
 
191
191
  <tr>
192
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/total_dead'>RuntimeError</a></td>
193
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/total_dead'>2</a></td>
194
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour'>2</a></td>
195
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/3_hours'>0</a></td>
196
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_day'>0</a></td>
197
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/3_days'>0</a></td>
198
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_week'>0</a></td>
199
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/older'>0</a></td>
192
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/all/total_dead'>RuntimeError</a></td>
193
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/RuntimeError/total_dead'>2</a></td>
194
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/RuntimeError/1_hour'>2</a></td>
195
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/RuntimeError/3_hours'>0</a></td>
196
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/RuntimeError/1_day'>0</a></td>
197
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/RuntimeError/3_days'>0</a></td>
198
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/RuntimeError/1_week'>0</a></td>
199
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/RuntimeError/older'>0</a></td>
200
200
  </tr>
201
201
 
202
202
  <tr>
203
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/total_dead'>NoMethodError</a></td>
204
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/total_dead'>1</a></td>
205
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/1_hour'>1</a></td>
206
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/3_hours'>0</a></td>
207
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/1_day'>0</a></td>
208
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/3_days'>0</a></td>
209
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/1_week'>0</a></td>
210
- <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/older'>0</a></td>
203
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/NoMethodError/all/total_dead'>NoMethodError</a></td>
204
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/NoMethodError/total_dead'>1</a></td>
205
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/NoMethodError/1_hour'>1</a></td>
206
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/NoMethodError/3_hours'>0</a></td>
207
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/NoMethodError/1_day'>0</a></td>
208
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/NoMethodError/3_days'>0</a></td>
209
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/NoMethodError/1_week'>0</a></td>
210
+ <td><a href='/sidekiq/undertaker/filter/HardWorker/NoMethodError/older'>0</a></td>
211
211
  </tr>
212
212
 
213
213
  </table>
@@ -0,0 +1,231 @@
1
+ <!doctype html>
2
+ <html dir="ltr">
3
+ <head>
4
+ <title>[TEST] Sidekiq</title>
5
+ <meta charset="utf-8" />
6
+ <meta name="viewport" content="width=device-width,initial-scale=1.0" />
7
+
8
+ <link href="/sidekiq/stylesheets/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
9
+
10
+
11
+ <link href="/sidekiq/stylesheets/application.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
+
14
+
15
+ <link rel="apple-touch-icon" href="/sidekiq/images/apple-touch-icon.png">
16
+ <link rel="shortcut icon" type="image/ico" href="/sidekiq/images/favicon.ico" />
17
+ <script type="text/javascript" src="/sidekiq/javascripts/application.js"></script>
18
+ <meta name="google" content="notranslate" />
19
+
20
+ </head>
21
+ <body class="admin" data-locale="en">
22
+ <div class="navbar navbar-default navbar-fixed-top">
23
+ <div class="container-fluid">
24
+ <div class="navbar-header" data-navbar="static">
25
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-menu">
26
+ <span class="icon-bar"></span>
27
+ <span class="icon-bar"></span>
28
+ <span class="icon-bar"></span>
29
+ </button>
30
+ <div class="navbar-toggle collapsed navbar-livereload">
31
+
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
+
35
+
36
+
37
+ </div>
38
+ <a class="navbar-brand" href="/sidekiq/">
39
+ Sidekiq
40
+ <span class="status">
41
+ <i class="status-sprite status-idle"></i>
42
+ idle
43
+ </span>
44
+
45
+ </a>
46
+ </div>
47
+
48
+ <div class="collapse navbar-collapse" id="navbar-menu">
49
+ <ul class="nav navbar-nav" data-navbar="static">
50
+
51
+
52
+ <li class="">
53
+ <a href="/sidekiq/">Dashboard</a>
54
+ </li>
55
+
56
+
57
+
58
+ <li class="">
59
+ <a href="/sidekiq/busy">Busy</a>
60
+ </li>
61
+
62
+
63
+
64
+ <li class="">
65
+ <a href="/sidekiq/queues">Queues</a>
66
+ </li>
67
+
68
+
69
+
70
+ <li class="">
71
+ <a href="/sidekiq/retries">Retries</a>
72
+ </li>
73
+
74
+
75
+
76
+ <li class="">
77
+ <a href="/sidekiq/scheduled">Scheduled</a>
78
+ </li>
79
+
80
+
81
+
82
+ <li class="">
83
+ <a href="/sidekiq/morgue">Dead</a>
84
+ </li>
85
+
86
+
87
+
88
+
89
+ <li class="active" data-navbar="custom-tab">
90
+ <a href="/sidekiq/undertaker/filter">Undertaker</a>
91
+ </li>
92
+
93
+
94
+ <li class="navbar-livereload">
95
+ <div class="poll-wrapper">
96
+
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>
99
+
100
+
101
+
102
+ </div>
103
+ </li>
104
+ </ul>
105
+ </div>
106
+ </div>
107
+ </div>
108
+
109
+ <div id="page">
110
+ <div class="container">
111
+ <div class="row">
112
+ <div class="col-sm-12 summary_bar">
113
+ <ul class="list-unstyled summary row">
114
+ <li class="processed col-sm-1">
115
+ <span id="txtProcessed" class="count">0</span>
116
+ <span class="desc">Processed</span>
117
+ </li>
118
+ <li class="failed col-sm-1">
119
+ <span id="txtFailed" class="count">0</span>
120
+ <span class="desc">Failed</span>
121
+ </li>
122
+ <li class="busy col-sm-1">
123
+ <a href="/sidekiq/busy">
124
+ <span id="txtBusy" class="count">0</span>
125
+ <span class="desc">Busy</span>
126
+ </a>
127
+ </li>
128
+ <li class="enqueued col-sm-1">
129
+ <a href="/sidekiq/queues">
130
+ <span id="txtEnqueued" class="count">0</span>
131
+ <span class="desc">Enqueued</span>
132
+ </a>
133
+ </li>
134
+ <li class="retries col-sm-1">
135
+ <a href="/sidekiq/retries">
136
+ <span id="txtRetries" class="count">0</span>
137
+ <span class="desc">Retries</span>
138
+ </a>
139
+ </li>
140
+ <li class="scheduled col-sm-1">
141
+ <a href="/sidekiq/scheduled">
142
+ <span id="txtScheduled" class="count">0</span>
143
+ <span class="desc">Scheduled</span>
144
+ </a>
145
+ </li>
146
+ <li class="dead col-sm-1">
147
+ <a href="/sidekiq/morgue">
148
+ <span id="txtDead" class="count">4</span>
149
+ <span class="desc">Dead</span>
150
+ </a>
151
+ </li>
152
+ </ul>
153
+
154
+ </div>
155
+
156
+ <div class="col-sm-12">
157
+ <header class="row header">
158
+ <div class="col-sm-12">
159
+ <h3>
160
+ <b>2</b> dead jobs
161
+ of <b>HardWorker</b> class
162
+ with <b>RuntimeError</b> exception
163
+ </h3>
164
+ </div>
165
+ </header>
166
+
167
+ <table class="table table-striped table-bordered table-white">
168
+ <thead>
169
+ <tr>
170
+ <th style="width: 20%">Error Message</th>
171
+ <th style="width: 10%">All</th>
172
+ <th style="width: 10%">1 hour</th>
173
+ <th style="width: 10%">3 hours</th>
174
+ <th style="width: 10%">1 day</th>
175
+ <th style="width: 10%">3 days</th>
176
+ <th style="width: 10%">1 week</th>
177
+ <th style="width: 10%">Older</th>
178
+ </tr>
179
+ </thead>
180
+
181
+ <tr>
182
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/total_dead'>Option 'data/file_name' is req...</a></td>
183
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/total_dead'>2</a></td>
184
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/1_hour'>2</a></td>
185
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/3_hours'>0</a></td>
186
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/1_day'>0</a></td>
187
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/3_days'>0</a></td>
188
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/1_week'>0</a></td>
189
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/older'>0</a></td>
190
+ </tr>
191
+
192
+ <tr>
193
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/total_dead'>all</a></td>
194
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/total_dead'>2</a></td>
195
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_hour'>2</a></td>
196
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/3_hours'>0</a></td>
197
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_day'>0</a></td>
198
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/3_days'>0</a></td>
199
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_week'>0</a></td>
200
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/older'>0</a></td>
201
+ </tr>
202
+
203
+ </table>
204
+
205
+ </div>
206
+ </div>
207
+ </div>
208
+ </div>
209
+ <div class="navbar navbar-fixed-bottom navbar-inverse ltr">
210
+ <div class="navbar-inner">
211
+ <div class="container text-center">
212
+ <ul class="nav">
213
+ <li>
214
+ <p class="navbar-text product-version">Sidekiq v*EXCLUDED*</p>
215
+ </li>
216
+ <li>
217
+ <p class="navbar-text redis-url" title="redis://127.0.0.1:6379/0">redis://127.0.0.1:6379/0</p>
218
+ </li>
219
+ <li>
220
+ <p id="serverUtcTime" class="navbar-text server-utc-time">20:57:00 UTC</p>
221
+ </li>
222
+ <li>
223
+ <p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>
224
+ </li>
225
+ </ul>
226
+ </div>
227
+ </div>
228
+ </div>
229
+
230
+ </body>
231
+ </html>
@@ -0,0 +1,231 @@
1
+ <!doctype html>
2
+ <html dir="ltr">
3
+ <head>
4
+ <title>[TEST] Sidekiq</title>
5
+ <meta charset="utf-8" />
6
+ <meta name="viewport" content="width=device-width,initial-scale=1.0" />
7
+
8
+ <link href="/sidekiq/stylesheets/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
9
+
10
+
11
+ <link href="/sidekiq/stylesheets/application.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
+
14
+
15
+ <link rel="apple-touch-icon" href="/sidekiq/images/apple-touch-icon.png">
16
+ <link rel="shortcut icon" type="image/ico" href="/sidekiq/images/favicon.ico" />
17
+ <script type="text/javascript" src="/sidekiq/javascripts/application.js"></script>
18
+ <meta name="google" content="notranslate" />
19
+
20
+ </head>
21
+ <body class="admin" data-locale="en">
22
+ <div class="navbar navbar-default navbar-fixed-top">
23
+ <div class="container-fluid">
24
+ <div class="navbar-header" data-navbar="static">
25
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-menu">
26
+ <span class="icon-bar"></span>
27
+ <span class="icon-bar"></span>
28
+ <span class="icon-bar"></span>
29
+ </button>
30
+ <div class="navbar-toggle collapsed navbar-livereload">
31
+
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
+
35
+
36
+
37
+ </div>
38
+ <a class="navbar-brand" href="/sidekiq/">
39
+ Sidekiq
40
+ <span class="status">
41
+ <i class="status-sprite status-idle"></i>
42
+ idle
43
+ </span>
44
+
45
+ </a>
46
+ </div>
47
+
48
+ <div class="collapse navbar-collapse" id="navbar-menu">
49
+ <ul class="nav navbar-nav" data-navbar="static">
50
+
51
+
52
+ <li class="">
53
+ <a href="/sidekiq/">Dashboard</a>
54
+ </li>
55
+
56
+
57
+
58
+ <li class="">
59
+ <a href="/sidekiq/busy">Busy</a>
60
+ </li>
61
+
62
+
63
+
64
+ <li class="">
65
+ <a href="/sidekiq/queues">Queues</a>
66
+ </li>
67
+
68
+
69
+
70
+ <li class="">
71
+ <a href="/sidekiq/retries">Retries</a>
72
+ </li>
73
+
74
+
75
+
76
+ <li class="">
77
+ <a href="/sidekiq/scheduled">Scheduled</a>
78
+ </li>
79
+
80
+
81
+
82
+ <li class="">
83
+ <a href="/sidekiq/morgue">Dead</a>
84
+ </li>
85
+
86
+
87
+
88
+
89
+ <li class="active" data-navbar="custom-tab">
90
+ <a href="/sidekiq/undertaker/filter">Undertaker</a>
91
+ </li>
92
+
93
+
94
+ <li class="navbar-livereload">
95
+ <div class="poll-wrapper">
96
+
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>
99
+
100
+
101
+
102
+ </div>
103
+ </li>
104
+ </ul>
105
+ </div>
106
+ </div>
107
+ </div>
108
+
109
+ <div id="page">
110
+ <div class="container">
111
+ <div class="row">
112
+ <div class="col-sm-12 summary_bar">
113
+ <ul class="list-unstyled summary row">
114
+ <li class="processed col-sm-1">
115
+ <span id="txtProcessed" class="count">0</span>
116
+ <span class="desc">Processed</span>
117
+ </li>
118
+ <li class="failed col-sm-1">
119
+ <span id="txtFailed" class="count">0</span>
120
+ <span class="desc">Failed</span>
121
+ </li>
122
+ <li class="busy col-sm-1">
123
+ <a href="/sidekiq/busy">
124
+ <span id="txtBusy" class="count">0</span>
125
+ <span class="desc">Busy</span>
126
+ </a>
127
+ </li>
128
+ <li class="enqueued col-sm-1">
129
+ <a href="/sidekiq/queues">
130
+ <span id="txtEnqueued" class="count">0</span>
131
+ <span class="desc">Enqueued</span>
132
+ </a>
133
+ </li>
134
+ <li class="retries col-sm-1">
135
+ <a href="/sidekiq/retries">
136
+ <span id="txtRetries" class="count">0</span>
137
+ <span class="desc">Retries</span>
138
+ </a>
139
+ </li>
140
+ <li class="scheduled col-sm-1">
141
+ <a href="/sidekiq/scheduled">
142
+ <span id="txtScheduled" class="count">0</span>
143
+ <span class="desc">Scheduled</span>
144
+ </a>
145
+ </li>
146
+ <li class="dead col-sm-1">
147
+ <a href="/sidekiq/morgue">
148
+ <span id="txtDead" class="count">4</span>
149
+ <span class="desc">Dead</span>
150
+ </a>
151
+ </li>
152
+ </ul>
153
+
154
+ </div>
155
+
156
+ <div class="col-sm-12">
157
+ <header class="row header">
158
+ <div class="col-sm-12">
159
+ <h3>
160
+ <b>2</b> dead jobs
161
+ of <b>HardWorker</b> class
162
+ with <b>RuntimeError</b> exception
163
+ </h3>
164
+ </div>
165
+ </header>
166
+
167
+ <table class="table table-striped table-bordered table-white">
168
+ <thead>
169
+ <tr>
170
+ <th style="width: 20%">Error Message</th>
171
+ <th style="width: 10%">All</th>
172
+ <th style="width: 10%">1 hour</th>
173
+ <th style="width: 10%">3 hours</th>
174
+ <th style="width: 10%">1 day</th>
175
+ <th style="width: 10%">3 days</th>
176
+ <th style="width: 10%">1 week</th>
177
+ <th style="width: 10%">Older</th>
178
+ </tr>
179
+ </thead>
180
+
181
+ <tr>
182
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/total_dead'>Option 'data/file_name' is req...</a></td>
183
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/total_dead'>2</a></td>
184
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/1_hour'>2</a></td>
185
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/3_hours'>0</a></td>
186
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/1_day'>0</a></td>
187
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/3_days'>0</a></td>
188
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/1_week'>0</a></td>
189
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/T3B0aW9uICdkYXRhL2ZpbGVfbmFtZScgaXMgcmVxLi4u/older'>0</a></td>
190
+ </tr>
191
+
192
+ <tr>
193
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/total_dead'>all</a></td>
194
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/total_dead'>2</a></td>
195
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_hour'>2</a></td>
196
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/3_hours'>0</a></td>
197
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_day'>0</a></td>
198
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/3_days'>0</a></td>
199
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_week'>0</a></td>
200
+ <td><a href='/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/older'>0</a></td>
201
+ </tr>
202
+
203
+ </table>
204
+
205
+ </div>
206
+ </div>
207
+ </div>
208
+ </div>
209
+ <div class="navbar navbar-fixed-bottom navbar-inverse ltr">
210
+ <div class="navbar-inner">
211
+ <div class="container text-center">
212
+ <ul class="nav">
213
+ <li>
214
+ <p class="navbar-text product-version">Sidekiq v*EXCLUDED*</p>
215
+ </li>
216
+ <li>
217
+ <p class="navbar-text redis-url" title="redis://127.0.0.1:6379/0">redis://127.0.0.1:6379/0</p>
218
+ </li>
219
+ <li>
220
+ <p id="serverUtcTime" class="navbar-text server-utc-time">20:57:00 UTC</p>
221
+ </li>
222
+ <li>
223
+ <p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>
224
+ </li>
225
+ </ul>
226
+ </div>
227
+ </div>
228
+ </div>
229
+
230
+ </body>
231
+ </html>