sidekiq-undertaker 1.1.1 → 1.4.0

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 +6 -5
  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 +32 -18
  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 +37 -39
  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 +37 -39
  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 +26 -21
  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 +24 -19
  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 +72 -67
  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 +38 -30
  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
@@ -18,7 +18,7 @@
18
18
  <meta name="google" content="notranslate" />
19
19
 
20
20
  </head>
21
- <body class="admin" data-poll-path="" data-locale="en">
21
+ <body class="admin" data-locale="en">
22
22
  <div class="navbar navbar-default navbar-fixed-top">
23
23
  <div class="container-fluid">
24
24
  <div class="navbar-header" data-navbar="static">
@@ -29,9 +29,8 @@
29
29
  </button>
30
30
  <div class="navbar-toggle collapsed navbar-livereload">
31
31
 
32
-
33
- <a id="live-poll" class="btn btn-primary" href="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour?poll=true">Live Poll</a>
34
-
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>
35
34
 
36
35
 
37
36
 
@@ -95,9 +94,8 @@
95
94
  <li class="navbar-livereload">
96
95
  <div class="poll-wrapper">
97
96
 
98
-
99
- <a id="live-poll" class="btn btn-primary" href="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour?poll=true">Live Poll</a>
100
-
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>
101
99
 
102
100
 
103
101
 
@@ -114,40 +112,40 @@
114
112
  <div class="col-sm-12 summary_bar">
115
113
  <ul class="list-unstyled summary row">
116
114
  <li class="processed col-sm-1">
117
- <span class="count">0</span>
115
+ <span id="txtProcessed" class="count">0</span>
118
116
  <span class="desc">Processed</span>
119
117
  </li>
120
118
  <li class="failed col-sm-1">
121
- <span class="count">0</span>
119
+ <span id="txtFailed" class="count">0</span>
122
120
  <span class="desc">Failed</span>
123
121
  </li>
124
122
  <li class="busy col-sm-1">
125
123
  <a href="/sidekiq/busy">
126
- <span class="count">0</span>
124
+ <span id="txtBusy" class="count">0</span>
127
125
  <span class="desc">Busy</span>
128
126
  </a>
129
127
  </li>
130
128
  <li class="enqueued col-sm-1">
131
129
  <a href="/sidekiq/queues">
132
- <span class="count">0</span>
130
+ <span id="txtEnqueued" class="count">0</span>
133
131
  <span class="desc">Enqueued</span>
134
132
  </a>
135
133
  </li>
136
134
  <li class="retries col-sm-1">
137
135
  <a href="/sidekiq/retries">
138
- <span class="count">0</span>
136
+ <span id="txtRetries" class="count">0</span>
139
137
  <span class="desc">Retries</span>
140
138
  </a>
141
139
  </li>
142
140
  <li class="scheduled col-sm-1">
143
141
  <a href="/sidekiq/scheduled">
144
- <span class="count">0</span>
142
+ <span id="txtScheduled" class="count">0</span>
145
143
  <span class="desc">Scheduled</span>
146
144
  </a>
147
145
  </li>
148
146
  <li class="dead col-sm-1">
149
147
  <a href="/sidekiq/morgue">
150
- <span class="count">54</span>
148
+ <span id="txtDead" class="count">54</span>
151
149
  <span class="desc">Dead</span>
152
150
  </a>
153
151
  </li>
@@ -162,6 +160,7 @@
162
160
  <b>52</b> dead jobs
163
161
  of <b>HardWorker</b> class
164
162
  with <b>RuntimeError</b> exception
163
+
165
164
  in <b>1_hour</b> bucket
166
165
  </h3>
167
166
  </div>
@@ -227,7 +226,7 @@
227
226
  <div class="args">&quot;asdf&quot;, 1234</div>
228
227
  </td>
229
228
  <td>
230
- <div>RuntimeError: Some fake message</div>
229
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
231
230
  </td>
232
231
  </tr>
233
232
 
@@ -248,7 +247,7 @@
248
247
  <div class="args">&quot;asdf&quot;, 1234</div>
249
248
  </td>
250
249
  <td>
251
- <div>RuntimeError: Some fake message</div>
250
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
252
251
  </td>
253
252
  </tr>
254
253
 
@@ -269,7 +268,7 @@
269
268
  <div class="args">&quot;asdf&quot;, 1234</div>
270
269
  </td>
271
270
  <td>
272
- <div>RuntimeError: Some fake message</div>
271
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
273
272
  </td>
274
273
  </tr>
275
274
 
@@ -290,7 +289,7 @@
290
289
  <div class="args">&quot;asdf&quot;, 1234</div>
291
290
  </td>
292
291
  <td>
293
- <div>RuntimeError: Some fake message</div>
292
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
294
293
  </td>
295
294
  </tr>
296
295
 
@@ -311,7 +310,7 @@
311
310
  <div class="args">&quot;asdf&quot;, 1234</div>
312
311
  </td>
313
312
  <td>
314
- <div>RuntimeError: Some fake message</div>
313
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
315
314
  </td>
316
315
  </tr>
317
316
 
@@ -332,7 +331,7 @@
332
331
  <div class="args">&quot;asdf&quot;, 1234</div>
333
332
  </td>
334
333
  <td>
335
- <div>RuntimeError: Some fake message</div>
334
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
336
335
  </td>
337
336
  </tr>
338
337
 
@@ -353,7 +352,7 @@
353
352
  <div class="args">&quot;asdf&quot;, 1234</div>
354
353
  </td>
355
354
  <td>
356
- <div>RuntimeError: Some fake message</div>
355
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
357
356
  </td>
358
357
  </tr>
359
358
 
@@ -374,7 +373,7 @@
374
373
  <div class="args">&quot;asdf&quot;, 1234</div>
375
374
  </td>
376
375
  <td>
377
- <div>RuntimeError: Some fake message</div>
376
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
378
377
  </td>
379
378
  </tr>
380
379
 
@@ -395,7 +394,7 @@
395
394
  <div class="args">&quot;asdf&quot;, 1234</div>
396
395
  </td>
397
396
  <td>
398
- <div>RuntimeError: Some fake message</div>
397
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
399
398
  </td>
400
399
  </tr>
401
400
 
@@ -416,7 +415,7 @@
416
415
  <div class="args">&quot;asdf&quot;, 1234</div>
417
416
  </td>
418
417
  <td>
419
- <div>RuntimeError: Some fake message</div>
418
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
420
419
  </td>
421
420
  </tr>
422
421
 
@@ -437,7 +436,7 @@
437
436
  <div class="args">&quot;asdf&quot;, 1234</div>
438
437
  </td>
439
438
  <td>
440
- <div>RuntimeError: Some fake message</div>
439
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
441
440
  </td>
442
441
  </tr>
443
442
 
@@ -458,7 +457,7 @@
458
457
  <div class="args">&quot;asdf&quot;, 1234</div>
459
458
  </td>
460
459
  <td>
461
- <div>RuntimeError: Some fake message</div>
460
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
462
461
  </td>
463
462
  </tr>
464
463
 
@@ -479,7 +478,7 @@
479
478
  <div class="args">&quot;asdf&quot;, 1234</div>
480
479
  </td>
481
480
  <td>
482
- <div>RuntimeError: Some fake message</div>
481
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
483
482
  </td>
484
483
  </tr>
485
484
 
@@ -500,7 +499,7 @@
500
499
  <div class="args">&quot;asdf&quot;, 1234</div>
501
500
  </td>
502
501
  <td>
503
- <div>RuntimeError: Some fake message</div>
502
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
504
503
  </td>
505
504
  </tr>
506
505
 
@@ -521,7 +520,7 @@
521
520
  <div class="args">&quot;asdf&quot;, 1234</div>
522
521
  </td>
523
522
  <td>
524
- <div>RuntimeError: Some fake message</div>
523
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
525
524
  </td>
526
525
  </tr>
527
526
 
@@ -542,7 +541,7 @@
542
541
  <div class="args">&quot;asdf&quot;, 1234</div>
543
542
  </td>
544
543
  <td>
545
- <div>RuntimeError: Some fake message</div>
544
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
546
545
  </td>
547
546
  </tr>
548
547
 
@@ -563,7 +562,7 @@
563
562
  <div class="args">&quot;asdf&quot;, 1234</div>
564
563
  </td>
565
564
  <td>
566
- <div>RuntimeError: Some fake message</div>
565
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
567
566
  </td>
568
567
  </tr>
569
568
 
@@ -584,7 +583,7 @@
584
583
  <div class="args">&quot;asdf&quot;, 1234</div>
585
584
  </td>
586
585
  <td>
587
- <div>RuntimeError: Some fake message</div>
586
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
588
587
  </td>
589
588
  </tr>
590
589
 
@@ -605,7 +604,7 @@
605
604
  <div class="args">&quot;asdf&quot;, 1234</div>
606
605
  </td>
607
606
  <td>
608
- <div>RuntimeError: Some fake message</div>
607
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
609
608
  </td>
610
609
  </tr>
611
610
 
@@ -626,7 +625,7 @@
626
625
  <div class="args">&quot;asdf&quot;, 1234</div>
627
626
  </td>
628
627
  <td>
629
- <div>RuntimeError: Some fake message</div>
628
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
630
629
  </td>
631
630
  </tr>
632
631
 
@@ -647,7 +646,7 @@
647
646
  <div class="args">&quot;asdf&quot;, 1234</div>
648
647
  </td>
649
648
  <td>
650
- <div>RuntimeError: Some fake message</div>
649
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
651
650
  </td>
652
651
  </tr>
653
652
 
@@ -668,7 +667,7 @@
668
667
  <div class="args">&quot;asdf&quot;, 1234</div>
669
668
  </td>
670
669
  <td>
671
- <div>RuntimeError: Some fake message</div>
670
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
672
671
  </td>
673
672
  </tr>
674
673
 
@@ -689,7 +688,7 @@
689
688
  <div class="args">&quot;asdf&quot;, 1234</div>
690
689
  </td>
691
690
  <td>
692
- <div>RuntimeError: Some fake message</div>
691
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
693
692
  </td>
694
693
  </tr>
695
694
 
@@ -710,7 +709,7 @@
710
709
  <div class="args">&quot;asdf&quot;, 1234</div>
711
710
  </td>
712
711
  <td>
713
- <div>RuntimeError: Some fake message</div>
712
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
714
713
  </td>
715
714
  </tr>
716
715
 
@@ -731,7 +730,7 @@
731
730
  <div class="args">&quot;asdf&quot;, 1234</div>
732
731
  </td>
733
732
  <td>
734
- <div>RuntimeError: Some fake message</div>
733
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
735
734
  </td>
736
735
  </tr>
737
736
 
@@ -752,7 +751,7 @@
752
751
  <div class="args">&quot;asdf&quot;, 1234</div>
753
752
  </td>
754
753
  <td>
755
- <div>RuntimeError: Some fake message</div>
754
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
756
755
  </td>
757
756
  </tr>
758
757
 
@@ -773,7 +772,7 @@
773
772
  <div class="args">&quot;asdf&quot;, 1234</div>
774
773
  </td>
775
774
  <td>
776
- <div>RuntimeError: Some fake message</div>
775
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
777
776
  </td>
778
777
  </tr>
779
778
 
@@ -794,7 +793,7 @@
794
793
  <div class="args">&quot;asdf&quot;, 1234</div>
795
794
  </td>
796
795
  <td>
797
- <div>RuntimeError: Some fake message</div>
796
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
798
797
  </td>
799
798
  </tr>
800
799
 
@@ -815,7 +814,7 @@
815
814
  <div class="args">&quot;asdf&quot;, 1234</div>
816
815
  </td>
817
816
  <td>
818
- <div>RuntimeError: Some fake message</div>
817
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
819
818
  </td>
820
819
  </tr>
821
820
 
@@ -836,7 +835,7 @@
836
835
  <div class="args">&quot;asdf&quot;, 1234</div>
837
836
  </td>
838
837
  <td>
839
- <div>RuntimeError: Some fake message</div>
838
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
840
839
  </td>
841
840
  </tr>
842
841
 
@@ -857,7 +856,7 @@
857
856
  <div class="args">&quot;asdf&quot;, 1234</div>
858
857
  </td>
859
858
  <td>
860
- <div>RuntimeError: Some fake message</div>
859
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
861
860
  </td>
862
861
  </tr>
863
862
 
@@ -878,7 +877,7 @@
878
877
  <div class="args">&quot;asdf&quot;, 1234</div>
879
878
  </td>
880
879
  <td>
881
- <div>RuntimeError: Some fake message</div>
880
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
882
881
  </td>
883
882
  </tr>
884
883
 
@@ -899,7 +898,7 @@
899
898
  <div class="args">&quot;asdf&quot;, 1234</div>
900
899
  </td>
901
900
  <td>
902
- <div>RuntimeError: Some fake message</div>
901
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
903
902
  </td>
904
903
  </tr>
905
904
 
@@ -920,7 +919,7 @@
920
919
  <div class="args">&quot;asdf&quot;, 1234</div>
921
920
  </td>
922
921
  <td>
923
- <div>RuntimeError: Some fake message</div>
922
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
924
923
  </td>
925
924
  </tr>
926
925
 
@@ -941,7 +940,7 @@
941
940
  <div class="args">&quot;asdf&quot;, 1234</div>
942
941
  </td>
943
942
  <td>
944
- <div>RuntimeError: Some fake message</div>
943
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
945
944
  </td>
946
945
  </tr>
947
946
 
@@ -962,7 +961,7 @@
962
961
  <div class="args">&quot;asdf&quot;, 1234</div>
963
962
  </td>
964
963
  <td>
965
- <div>RuntimeError: Some fake message</div>
964
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
966
965
  </td>
967
966
  </tr>
968
967
 
@@ -983,7 +982,7 @@
983
982
  <div class="args">&quot;asdf&quot;, 1234</div>
984
983
  </td>
985
984
  <td>
986
- <div>RuntimeError: Some fake message</div>
985
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
987
986
  </td>
988
987
  </tr>
989
988
 
@@ -1004,7 +1003,7 @@
1004
1003
  <div class="args">&quot;asdf&quot;, 1234</div>
1005
1004
  </td>
1006
1005
  <td>
1007
- <div>RuntimeError: Some fake message</div>
1006
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
1008
1007
  </td>
1009
1008
  </tr>
1010
1009
 
@@ -1025,7 +1024,7 @@
1025
1024
  <div class="args">&quot;asdf&quot;, 1234</div>
1026
1025
  </td>
1027
1026
  <td>
1028
- <div>RuntimeError: Some fake message</div>
1027
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
1029
1028
  </td>
1030
1029
  </tr>
1031
1030
 
@@ -1046,7 +1045,7 @@
1046
1045
  <div class="args">&quot;asdf&quot;, 1234</div>
1047
1046
  </td>
1048
1047
  <td>
1049
- <div>RuntimeError: Some fake message</div>
1048
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
1050
1049
  </td>
1051
1050
  </tr>
1052
1051
 
@@ -1067,7 +1066,7 @@
1067
1066
  <div class="args">&quot;asdf&quot;, 1234</div>
1068
1067
  </td>
1069
1068
  <td>
1070
- <div>RuntimeError: Some fake message</div>
1069
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
1071
1070
  </td>
1072
1071
  </tr>
1073
1072
 
@@ -1088,7 +1087,7 @@
1088
1087
  <div class="args">&quot;asdf&quot;, 1234</div>
1089
1088
  </td>
1090
1089
  <td>
1091
- <div>RuntimeError: Some fake message</div>
1090
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
1092
1091
  </td>
1093
1092
  </tr>
1094
1093
 
@@ -1109,7 +1108,7 @@
1109
1108
  <div class="args">&quot;asdf&quot;, 1234</div>
1110
1109
  </td>
1111
1110
  <td>
1112
- <div>RuntimeError: Some fake message</div>
1111
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
1113
1112
  </td>
1114
1113
  </tr>
1115
1114
 
@@ -1130,7 +1129,7 @@
1130
1129
  <div class="args">&quot;asdf&quot;, 1234</div>
1131
1130
  </td>
1132
1131
  <td>
1133
- <div>RuntimeError: Some fake message</div>
1132
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
1134
1133
  </td>
1135
1134
  </tr>
1136
1135
 
@@ -1151,7 +1150,7 @@
1151
1150
  <div class="args">&quot;asdf&quot;, 1234</div>
1152
1151
  </td>
1153
1152
  <td>
1154
- <div>RuntimeError: Some fake message</div>
1153
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
1155
1154
  </td>
1156
1155
  </tr>
1157
1156
 
@@ -1172,7 +1171,7 @@
1172
1171
  <div class="args">&quot;asdf&quot;, 1234</div>
1173
1172
  </td>
1174
1173
  <td>
1175
- <div>RuntimeError: Some fake message</div>
1174
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
1176
1175
  </td>
1177
1176
  </tr>
1178
1177
 
@@ -1193,7 +1192,7 @@
1193
1192
  <div class="args">&quot;asdf&quot;, 1234</div>
1194
1193
  </td>
1195
1194
  <td>
1196
- <div>RuntimeError: Some fake message</div>
1195
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
1197
1196
  </td>
1198
1197
  </tr>
1199
1198
 
@@ -1214,7 +1213,7 @@
1214
1213
  <div class="args">&quot;asdf&quot;, 1234</div>
1215
1214
  </td>
1216
1215
  <td>
1217
- <div>RuntimeError: Some fake message</div>
1216
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
1218
1217
  </td>
1219
1218
  </tr>
1220
1219
 
@@ -1235,7 +1234,7 @@
1235
1234
  <div class="args">&quot;asdf&quot;, 1234</div>
1236
1235
  </td>
1237
1236
  <td>
1238
- <div>RuntimeError: Some fake message</div>
1237
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
1239
1238
  </td>
1240
1239
  </tr>
1241
1240
 
@@ -1256,21 +1255,27 @@
1256
1255
  <div class="args">&quot;asdf&quot;, 1234</div>
1257
1256
  </td>
1258
1257
  <td>
1259
- <div>RuntimeError: Some fake message</div>
1258
+ <div>RuntimeError: Option &#x27;data&#x2F;file_name&#x27; is required! This is an extra long error message.</div>
1260
1259
  </td>
1261
1260
  </tr>
1262
1261
 
1263
1262
  </table>
1264
1263
  <input class="btn btn-primary btn-xs pull-left" type="submit" name="retry" value="Revive" />
1264
+ <input class="btn btn-secondary btn-xs pull-left" type="submit" name="export" value="Export" />
1265
1265
  <input class="btn btn-danger btn-xs pull-left" type="submit" name="delete" value="Bury" />
1266
1266
  </form>
1267
1267
 
1268
- <form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour/delete" method="post">
1268
+ <form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_hour/delete" method="post">
1269
1269
  <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
1270
1270
  <input class="btn btn-danger btn-xs pull-right" type="submit" name="delete" value="Bury All" data-confirm="Are you sure?" />
1271
1271
  </form>
1272
1272
 
1273
- <form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/1_hour/retry" method="post">
1273
+ <form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_hour/export" method="post">
1274
+ <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
1275
+ <input class="btn btn-secondary btn-xs pull-right" type="submit" name="export" value="Export All" />
1276
+ </form>
1277
+
1278
+ <form action="/sidekiq/undertaker/morgue/HardWorker/RuntimeError/YWxs/1_hour/retry" method="post">
1274
1279
  <input type='hidden' name='authenticity_token' value='stubbed-csrf-token'/>
1275
1280
  <input class="btn btn-danger btn-xs pull-right" type="submit" name="retry" value="Revive All" data-confirm="Are you sure?" />
1276
1281
  </form>
@@ -1291,7 +1296,7 @@
1291
1296
  <p class="navbar-text redis-url" title="redis://127.0.0.1:6379/0">redis://127.0.0.1:6379/0</p>
1292
1297
  </li>
1293
1298
  <li>
1294
- <p class="navbar-text server-utc-time">20:57:00 UTC</p>
1299
+ <p id="serverUtcTime" class="navbar-text server-utc-time">20:57:00 UTC</p>
1295
1300
  </li>
1296
1301
  <li>
1297
1302
  <p class="navbar-text"><a style="color: gray;" href="https://github.com/mperham/sidekiq/wiki">docs</a></p>
@@ -7,10 +7,11 @@ module Sidekiq
7
7
  describe DeadJob do
8
8
  let(:job) do
9
9
  build_job(
10
- "class" => "HardWorkTask",
11
- "failed_at" => Time.now,
12
- "error_class" => "NoMethodError",
13
- "queue" => "SomeQueue"
10
+ "class" => "HardWorkTask",
11
+ "failed_at" => Time.now,
12
+ "error_class" => "NoMethodError",
13
+ "queue" => "SomeQueue",
14
+ "error_message" => "undefined method `pause` for HardWork:Class"
14
15
  )
15
16
  end
16
17
 
@@ -20,6 +21,7 @@ module Sidekiq
20
21
  job_class: "HardWorkTask",
21
22
  time_elapsed_since_failure: 9,
22
23
  error_class: "NoMethodError",
24
+ error_msg: "undefined method `pause` for H...",
23
25
  bucket_name: "1_hour",
24
26
  job: job
25
27
  }
@@ -54,6 +56,7 @@ module Sidekiq
54
56
  job_class: "HardWorkTask",
55
57
  time_elapsed_since_failure: time_elapsed,
56
58
  error_class: "NoMethodError",
59
+ error_msg: "undefined method `pause` for H...",
57
60
  bucket_name: "1_hour",
58
61
  job: killed_job
59
62
  )