sidekiq 3.0.2 → 3.1.0

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.

@@ -369,6 +369,79 @@ img.smallogo {
369
369
  margin: 5px 5px 5px 10px;
370
370
  }
371
371
  }
372
+
373
+ /* Dashboard
374
+ ********************************** */
375
+ div.dashboard h3 {
376
+ float: left;
377
+ }
378
+
379
+ div.interval-slider {
380
+ float: right;
381
+ line-height: 1.3;
382
+ font-size: 0.95em;
383
+ padding: 15px 0 0;
384
+ }
385
+
386
+ span.current-interval {
387
+ min-width: 40px;
388
+ display: inline-block;
389
+ padding: 0 0 5px 0;
390
+ color: #B1003E;
391
+ }
392
+
393
+ div.interval-slider input {
394
+ width: 160px;
395
+ }
396
+
397
+ #realtime-legend,
398
+ #history-legend {
399
+ width: 490px;
400
+ text-align: left;
401
+ margin-top: 5px;
402
+ float: right;
403
+ }
404
+ #realtime-legend .timestamp,
405
+ #history-legend .timestamp {
406
+ display: inline-block;
407
+ width: 220px;
408
+ text-align: right;
409
+ }
410
+ #realtime-legend .line,
411
+ #history-legend .line {
412
+ display: inline-block;
413
+ margin: 0 0 0 20px;
414
+ }
415
+ #realtime-legend .swatch,
416
+ #history-legend .swatch {
417
+ display: inline-block;
418
+ width: 10px;
419
+ height: 10px;
420
+ margin: 0 8px 0 0;
421
+ }
422
+ #realtime-legend .tag,
423
+ #history-legend .tag {
424
+ display: inline-block;
425
+ }
426
+
427
+ @media (max-width: 790px) {
428
+ #realtime-legend,
429
+ #history-legend {
430
+ float: none;
431
+ width: 100%;
432
+ margin-bottom: 20px;
433
+ }
434
+ }
435
+
436
+ @media (max-width: 500px) {
437
+ #realtime-legend,
438
+ #history-legend {
439
+ text-align: center;
440
+ }
441
+ }
442
+ /* Beacon
443
+ ********************************** */
444
+
372
445
  .beacon {
373
446
  position: relative;
374
447
  height: 20px;
@@ -608,313 +681,8 @@ img.smallogo {
608
681
  }
609
682
 
610
683
  /* Rickshaw */
611
- .rickshaw_graph .detail {
612
- pointer-events: none;
613
- position: absolute;
614
- top: 0;
615
- z-index: 2;
616
- background: rgba(0, 0, 0, 0.1);
617
- bottom: 0;
618
- width: 1px;
619
- transition: opacity 0.25s linear;
620
- -moz-transition: opacity 0.25s linear;
621
- -o-transition: opacity 0.25s linear;
622
- -webkit-transition: opacity 0.25s linear;
623
- }
624
- .rickshaw_graph .detail.inactive {
625
- opacity: 0;
626
- }
627
- .rickshaw_graph .detail .item.active {
628
- opacity: 1;
629
- }
630
- .rickshaw_graph .detail .x_label {
631
- font-family: Arial, sans-serif;
632
- border-radius: 3px;
633
- padding: 6px;
634
- opacity: 0.5;
635
- border: 1px solid #e0e0e0;
636
- font-size: 12px;
637
- position: absolute;
638
- background: white;
639
- white-space: nowrap;
640
- }
641
- .rickshaw_graph .detail .item {
642
- position: absolute;
643
- z-index: 2;
644
- border-radius: 3px;
645
- padding: 0.25em;
646
- font-size: 12px;
647
- font-family: Arial, sans-serif;
648
- opacity: 0;
649
- background: rgba(0, 0, 0, 0.4);
650
- color: white;
651
- border: 1px solid rgba(0, 0, 0, 0.4);
652
- margin-left: 1em;
653
- margin-top: -1em;
654
- white-space: nowrap;
655
- }
656
- .rickshaw_graph .detail .item.active {
657
- opacity: 1;
658
- background: rgba(0, 0, 0, 0.8);
659
- }
660
- .rickshaw_graph .detail .item:before {
661
- content: "\25c2";
662
- position: absolute;
663
- left: -0.5em;
664
- color: rgba(0, 0, 0, 0.7);
665
- width: 0;
666
- }
667
- .rickshaw_graph .detail .dot {
668
- width: 4px;
669
- height: 4px;
670
- margin-left: -4px;
671
- margin-top: -3px;
672
- border-radius: 5px;
673
- position: absolute;
674
- box-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
675
- background: white;
676
- border-width: 2px;
677
- border-style: solid;
678
- display: none;
679
- background-clip: padding-box;
680
- }
681
- .rickshaw_graph .detail .dot.active {
682
- display: block;
683
- }
684
- /* graph */
685
-
686
- .rickshaw_graph {
687
- position: relative;
688
- }
689
- .rickshaw_graph svg {
690
- display: block;
691
- overflow: hidden;
692
- }
684
+ .rickshaw_graph .detail{pointer-events:none;position:absolute;top:0;z-index:2;background:rgba(0,0,0,.1);bottom:0;width:1px;transition:opacity .25s linear;-moz-transition:opacity .25s linear;-o-transition:opacity .25s linear;-webkit-transition:opacity .25s linear}.rickshaw_graph .detail.inactive{opacity:0}.rickshaw_graph .detail .item.active{opacity:1}.rickshaw_graph .detail .x_label{font-family:Arial,sans-serif;border-radius:3px;padding:6px;opacity:.5;border:1px solid #e0e0e0;font-size:12px;position:absolute;background:#fff;white-space:nowrap}.rickshaw_graph .detail .x_label.left{left:0}.rickshaw_graph .detail .x_label.right{right:0}.rickshaw_graph .detail .item{position:absolute;z-index:2;border-radius:3px;padding:.25em;font-size:12px;font-family:Arial,sans-serif;opacity:0;background:rgba(0,0,0,.4);color:#fff;border:1px solid rgba(0,0,0,.4);margin-left:1em;margin-right:1em;margin-top:-1em;white-space:nowrap}.rickshaw_graph .detail .item.left{left:0}.rickshaw_graph .detail .item.right{right:0}.rickshaw_graph .detail .item.active{opacity:1;background:rgba(0,0,0,.8)}.rickshaw_graph .detail .item:after{position:absolute;display:block;width:0;height:0;content:"";border:5px solid transparent}.rickshaw_graph .detail .item.left:after{top:1em;left:-5px;margin-top:-5px;border-right-color:rgba(0,0,0,.8);border-left-width:0}.rickshaw_graph .detail .item.right:after{top:1em;right:-5px;margin-top:-5px;border-left-color:rgba(0,0,0,.8);border-right-width:0}.rickshaw_graph .detail .dot{width:4px;height:4px;margin-left:-3px;margin-top:-3.5px;border-radius:5px;position:absolute;box-shadow:0 0 2px rgba(0,0,0,.6);box-sizing:content-box;-moz-box-sizing:content-box;background:#fff;border-width:2px;border-style:solid;display:none;background-clip:padding-box}.rickshaw_graph .detail .dot.active{display:block}.rickshaw_graph{position:relative}.rickshaw_graph svg{display:block;overflow:hidden}.rickshaw_graph .x_tick{position:absolute;top:0;bottom:0;width:0;border-left:1px dotted rgba(0,0,0,.2);pointer-events:none}.rickshaw_graph .x_tick .title{position:absolute;font-size:12px;font-family:Arial,sans-serif;opacity:.5;white-space:nowrap;margin-left:3px;bottom:1px}.rickshaw_annotation_timeline{height:1px;border-top:1px solid #e0e0e0;margin-top:10px;position:relative}.rickshaw_annotation_timeline .annotation{position:absolute;height:6px;width:6px;margin-left:-2px;top:-3px;border-radius:5px;background-color:rgba(0,0,0,.25)}.rickshaw_graph .annotation_line{position:absolute;top:0;bottom:-6px;width:0;border-left:2px solid rgba(0,0,0,.3);display:none}.rickshaw_graph .annotation_line.active{display:block}.rickshaw_graph .annotation_range{background:rgba(0,0,0,.1);display:none;position:absolute;top:0;bottom:-6px}.rickshaw_graph .annotation_range.active{display:block}.rickshaw_graph .annotation_range.active.offscreen{display:none}.rickshaw_annotation_timeline .annotation .content{background:#fff;color:#000;opacity:.9;padding:5px;box-shadow:0 0 2px rgba(0,0,0,.8);border-radius:3px;position:relative;z-index:20;font-size:12px;padding:6px 8px 8px;top:18px;left:-11px;width:160px;display:none;cursor:pointer}.rickshaw_annotation_timeline .annotation .content:before{content:"\25b2";position:absolute;top:-11px;color:#fff;text-shadow:0 -1px 1px rgba(0,0,0,.8)}.rickshaw_annotation_timeline .annotation.active,.rickshaw_annotation_timeline .annotation:hover{background-color:rgba(0,0,0,.8);cursor:none}.rickshaw_annotation_timeline .annotation .content:hover{z-index:50}.rickshaw_annotation_timeline .annotation.active .content{display:block}.rickshaw_annotation_timeline .annotation:hover .content{display:block;z-index:50}.rickshaw_graph .y_axis,.rickshaw_graph .x_axis_d3{fill:none}.rickshaw_graph .y_ticks .tick line,.rickshaw_graph .x_ticks_d3 .tick{stroke:rgba(0,0,0,.16);stroke-width:2px;shape-rendering:crisp-edges;pointer-events:none}.rickshaw_graph .y_grid .tick,.rickshaw_graph .x_grid_d3 .tick{z-index:-1;stroke:rgba(0,0,0,.2);stroke-width:1px;stroke-dasharray:1 1}.rickshaw_graph .y_grid .tick[data-y-value="0"]{stroke-dasharray:1 0}.rickshaw_graph .y_grid path,.rickshaw_graph .x_grid_d3 path{fill:none;stroke:none}.rickshaw_graph .y_ticks path,.rickshaw_graph .x_ticks_d3 path{fill:none;stroke:gray}.rickshaw_graph .y_ticks text,.rickshaw_graph .x_ticks_d3 text{opacity:.5;font-size:12px;pointer-events:none}.rickshaw_graph .x_tick.glow .title,.rickshaw_graph .y_ticks.glow text{fill:#000;color:#000;text-shadow:-1px 1px 0 rgba(255,255,255,.1),1px -1px 0 rgba(255,255,255,.1),1px 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1),0 -1px 0 rgba(255,255,255,.1),1px 0 0 rgba(255,255,255,.1),-1px 0 0 rgba(255,255,255,.1),-1px -1px 0 rgba(255,255,255,.1)}.rickshaw_graph .x_tick.inverse .title,.rickshaw_graph .y_ticks.inverse text{fill:#fff;color:#fff;text-shadow:-1px 1px 0 rgba(0,0,0,.8),1px -1px 0 rgba(0,0,0,.8),1px 1px 0 rgba(0,0,0,.8),0 1px 0 rgba(0,0,0,.8),0 -1px 0 rgba(0,0,0,.8),1px 0 0 rgba(0,0,0,.8),-1px 0 0 rgba(0,0,0,.8),-1px -1px 0 rgba(0,0,0,.8)}.rickshaw_legend{font-family:Arial;font-size:12px;color:#fff;background:#404040;display:inline-block;padding:12px 5px;border-radius:2px;position:relative}.rickshaw_legend:hover{z-index:10}.rickshaw_legend .swatch{width:10px;height:10px;border:1px solid rgba(0,0,0,.2)}.rickshaw_legend .line{clear:both;line-height:140%;padding-right:15px}.rickshaw_legend .line .swatch{display:inline-block;margin-right:3px;border-radius:2px}.rickshaw_legend .label{margin:0;white-space:nowrap;display:inline;font-size:inherit;background-color:transparent;color:inherit;font-weight:400;line-height:normal;padding:0;text-shadow:none}.rickshaw_legend .action:hover{opacity:.6}.rickshaw_legend .action{margin-right:.2em;font-size:10px;opacity:.2;cursor:pointer;font-size:14px}.rickshaw_legend .line.disabled{opacity:.4}.rickshaw_legend ul{list-style-type:none;margin:0;padding:0;margin:2px;cursor:pointer}.rickshaw_legend li{padding:0 0 0 2px;min-width:80px;white-space:nowrap}.rickshaw_legend li:hover{background:rgba(255,255,255,.08);border-radius:3px}.rickshaw_legend li:active{background:rgba(255,255,255,.2);border-radius:3px}
693
685
 
694
- /* ticks */
695
-
696
- .rickshaw_graph .x_tick {
697
- position: absolute;
698
- top: 0;
699
- bottom: 0;
700
- width: 0px;
701
- border-left: 1px dotted rgba(0, 0, 0, 0.2);
702
- pointer-events: none;
703
- }
704
- .rickshaw_graph .x_tick .title {
705
- position: absolute;
706
- font-size: 12px;
707
- font-family: Arial, sans-serif;
708
- opacity: 0.5;
709
- white-space: nowrap;
710
- margin-left: 3px;
711
- bottom: 1px;
712
- }
713
-
714
- /* annotations */
715
-
716
- .rickshaw_annotation_timeline {
717
- height: 1px;
718
- border-top: 1px solid #e0e0e0;
719
- margin-top: 10px;
720
- position: relative;
721
- }
722
- .rickshaw_annotation_timeline .annotation {
723
- position: absolute;
724
- height: 6px;
725
- width: 6px;
726
- margin-left: -2px;
727
- top: -3px;
728
- border-radius: 5px;
729
- background-color: rgba(0, 0, 0, 0.25);
730
- }
731
- .rickshaw_graph .annotation_line {
732
- position: absolute;
733
- top: 0;
734
- bottom: -6px;
735
- width: 0px;
736
- border-left: 2px solid rgba(0, 0, 0, 0.3);
737
- display: none;
738
- }
739
- .rickshaw_graph .annotation_line.active {
740
- display: block;
741
- }
742
-
743
- .rickshaw_graph .annotation_range {
744
- background: rgba(0, 0, 0, 0.1);
745
- display: none;
746
- position: absolute;
747
- top: 0;
748
- bottom: -6px;
749
- z-index: -10;
750
- }
751
- .rickshaw_graph .annotation_range.active {
752
- display: block;
753
- }
754
- .rickshaw_graph .annotation_range.active.offscreen {
755
- display: none;
756
- }
757
-
758
- .rickshaw_annotation_timeline .annotation .content {
759
- background: white;
760
- color: black;
761
- opacity: 0.9;
762
- padding: 5px 5px;
763
- box-shadow: 0 0 2px rgba(0, 0, 0, 0.8);
764
- border-radius: 3px;
765
- position: relative;
766
- z-index: 20;
767
- font-size: 12px;
768
- padding: 6px 8px 8px;
769
- top: 18px;
770
- left: -11px;
771
- width: 160px;
772
- display: none;
773
- cursor: pointer;
774
- }
775
- .rickshaw_annotation_timeline .annotation .content:before {
776
- content: "\25b2";
777
- position: absolute;
778
- top: -11px;
779
- color: white;
780
- text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.8);
781
- }
782
- .rickshaw_annotation_timeline .annotation.active,
783
- .rickshaw_annotation_timeline .annotation:hover {
784
- background-color: rgba(0, 0, 0, 0.8);
785
- cursor: none;
786
- }
787
- .rickshaw_annotation_timeline .annotation .content:hover {
788
- z-index: 50;
789
- }
790
- .rickshaw_annotation_timeline .annotation.active .content {
791
- display: block;
792
- }
793
- .rickshaw_annotation_timeline .annotation:hover .content {
794
- display: block;
795
- z-index: 50;
796
- }
797
- .rickshaw_graph .y_axis {
798
- fill: none;
799
- }
800
- .rickshaw_graph .y_ticks .tick {
801
- stroke: rgba(0, 0, 0, 0.16);
802
- stroke-width: 2px;
803
- shape-rendering: crisp-edges;
804
- pointer-events: none;
805
- }
806
- .rickshaw_graph .y_grid .tick {
807
- z-index: -1;
808
- stroke: rgba(0, 0, 0, 0.20);
809
- stroke-width: 1px;
810
- stroke-dasharray: 1 1;
811
- }
812
- .rickshaw_graph .y_grid path {
813
- fill: none;
814
- stroke: none;
815
- }
816
- .rickshaw_graph .y_ticks path {
817
- fill: none;
818
- stroke: #808080;
819
- }
820
- .rickshaw_graph .y_ticks text {
821
- opacity: 0.5;
822
- font-size: 12px;
823
- pointer-events: none;
824
- }
825
- .rickshaw_graph .x_tick.glow .title,
826
- .rickshaw_graph .y_ticks.glow text {
827
- fill: black;
828
- color: black;
829
- text-shadow:
830
- -1px 1px 0 rgba(255, 255, 255, 0.1),
831
- 1px -1px 0 rgba(255, 255, 255, 0.1),
832
- 1px 1px 0 rgba(255, 255, 255, 0.1),
833
- 0px 1px 0 rgba(255, 255, 255, 0.1),
834
- 0px -1px 0 rgba(255, 255, 255, 0.1),
835
- 1px 0px 0 rgba(255, 255, 255, 0.1),
836
- -1px 0px 0 rgba(255, 255, 255, 0.1),
837
- -1px -1px 0 rgba(255, 255, 255, 0.1);
838
- }
839
- .rickshaw_graph .x_tick.inverse .title,
840
- .rickshaw_graph .y_ticks.inverse text {
841
- fill: white;
842
- color: white;
843
- text-shadow:
844
- -1px 1px 0 rgba(0, 0, 0, 0.8),
845
- 1px -1px 0 rgba(0, 0, 0, 0.8),
846
- 1px 1px 0 rgba(0, 0, 0, 0.8),
847
- 0px 1px 0 rgba(0, 0, 0, 0.8),
848
- 0px -1px 0 rgba(0, 0, 0, 0.8),
849
- 1px 0px 0 rgba(0, 0, 0, 0.8),
850
- -1px 0px 0 rgba(0, 0, 0, 0.8),
851
- -1px -1px 0 rgba(0, 0, 0, 0.8);
852
- }
853
- .rickshaw_legend {
854
- font-family: Arial;
855
- font-size: 12px;
856
- color: white;
857
- background: #404040;
858
- display: inline-block;
859
- padding: 12px 5px;
860
- border-radius: 2px;
861
- position: relative;
862
- }
863
- .rickshaw_legend:hover {
864
- z-index: 10;
865
- }
866
- .rickshaw_legend .swatch {
867
- width: 10px;
868
- height: 10px;
869
- border: 1px solid rgba(0, 0, 0, 0.2);
870
- }
871
- .rickshaw_legend .line {
872
- clear: both;
873
- line-height: 140%;
874
- padding-right: 15px;
875
- }
876
- .rickshaw_legend .line .swatch {
877
- display: inline-block;
878
- margin-right: 3px;
879
- border-radius: 2px;
880
- }
881
- .rickshaw_legend .label {
882
- white-space: nowrap;
883
- display: inline;
884
- }
885
- .rickshaw_legend .action:hover {
886
- opacity: 0.6;
887
- }
888
- .rickshaw_legend .action {
889
- margin-right: 0.2em;
890
- font-size: 10px;
891
- opacity: 0.2;
892
- cursor: pointer;
893
- font-size: 14px;
894
- }
895
- .rickshaw_legend .line.disabled {
896
- opacity: 0.4;
897
- }
898
- .rickshaw_legend ul {
899
- list-style-type: none;
900
- margin: 0;
901
- padding: 0;
902
- margin: 2px;
903
- cursor: pointer;
904
- }
905
- .rickshaw_legend li {
906
- padding: 0 0 0 2px;
907
- min-width: 80px;
908
- white-space: nowrap;
909
- }
910
- .rickshaw_legend li:hover {
911
- background: rgba(255, 255, 255, 0.08);
912
- border-radius: 3px;
913
- }
914
- .rickshaw_legend li:active {
915
- background: rgba(255, 255, 255, 0.2);
916
- border-radius: 3px;
917
- }
918
686
  .code-wrap {
919
687
  white-space: normal;
920
688
  }
@@ -934,8 +702,8 @@ img.smallogo {
934
702
  padding: 0;
935
703
  }
936
704
  @media (max-width: 979px) {
937
- .navbar-fixed-top, .navbar-fixed-bottom {
938
- position: relative;
939
- top: auto;
940
- }
705
+ .navbar-fixed-top, .navbar-fixed-bottom {
706
+ position: relative;
707
+ top: auto;
708
+ }
941
709
  }
@@ -67,3 +67,8 @@ en: # <---- change this to your locale code
67
67
  Threads: Threads
68
68
  Jobs: Jobs
69
69
  Paused: Paused
70
+ Stop: Stop
71
+ Quiet: Quiet
72
+ StopAll: Stop All
73
+ QuietAll: Quiet All
74
+ PollingInterval: Polling interval
@@ -7,13 +7,13 @@
7
7
  <tr>
8
8
  <th><%= t('Queue') %></th>
9
9
  <td>
10
- <a href="<%= root_path %>queues/<%= job['queue'] %>"><%= job['queue'] %></a>
10
+ <a href="<%= root_path %>queues/<%= job.queue %>"><%= job.queue %></a>
11
11
  </td>
12
12
  </tr>
13
13
  <tr>
14
- <th><%= t('Class') %></th>
14
+ <th><%= t('Job') %></th>
15
15
  <td>
16
- <code><%= job['class'] %></code>
16
+ <code><%= job.display_class %></code>
17
17
  </td>
18
18
  </tr>
19
19
  <tr>
@@ -21,7 +21,7 @@
21
21
  <td>
22
22
  <code class="code-wrap">
23
23
  <!-- We don't want to truncate any job arguments when viewing a single job's status page -->
24
- <div class="args-extended"><%= display_args(job['args'], nil) %></div>
24
+ <div class="args-extended"><%= display_args(job.display_args, nil) %></div>
25
25
  </code>
26
26
  </td>
27
27
  </tr>
@@ -1,6 +1,6 @@
1
1
  <% if params[:poll] %>
2
2
  <script>
3
- setInterval("window.location.reload(true)", 2000);
3
+ setInterval("window.location.reload(true)", parseInt(localStorage.timeInterval) || 2000);
4
4
  </script>
5
5
  <% end %>
6
6
  <% unless current_path == '' %>
@@ -1,7 +1,16 @@
1
1
  <div class="row header">
2
- <div class="col-sm-7">
2
+ <div class="col-sm-8 pull-left">
3
3
  <h3><%= t('Processes') %></h3>
4
4
  </div>
5
+ <div class="col-sm-4 pull-right">
6
+ <form method="POST" style="margin-top: 20px; margin-bottom: 10px;">
7
+ <div class="btn-group pull-right">
8
+ <button class="btn btn-warn" type="submit" name="quiet" value="1"><%= t('QuietAll') %></button>
9
+ <button class="btn btn-danger" type="submit" name="stop" value="1"><%= t('StopAll') %></button>
10
+ </div>
11
+ </form>
12
+ </div>
13
+ </div>
5
14
  </div>
6
15
 
7
16
  <table class="processes table table-hover table-bordered table-striped table-white">
@@ -10,13 +19,24 @@
10
19
  <th><%= t('Started') %></th>
11
20
  <th><%= t('Threads') %></th>
12
21
  <th><%= t('Busy') %></th>
22
+ <th>&nbsp;</th>
13
23
  </thead>
14
24
  <% Sidekiq::ProcessSet.new.each_with_index do |process, index| %>
15
25
  <tr>
16
- <td><%= process['hostname'] %>:<%= process['pid'] %></td>
26
+ <td><%= "#{process['hostname']}:#{process['pid']}" %></td>
17
27
  <td><%= relative_time(Time.at(process['started_at'])) %></td>
18
28
  <td><%= process['concurrency'] %></td>
19
29
  <td><%= process['busy'] %></td>
30
+ <td>
31
+ <div class="btn-group pull-right">
32
+ <form method="POST">
33
+ <input type="hidden" name="hostname" value="<%= process['hostname'] %>"/>
34
+ <input type="hidden" name="pid" value="<%= process['pid'] %>"/>
35
+ <button class="btn btn-warn" type="submit" name="quiet" value="1"><%= t('Quiet') %></button>
36
+ <button class="btn btn-danger" type="submit" name="stop" value="1"><%= t('Stop') %></button>
37
+ </form>
38
+ </div>
39
+ </td>
20
40
  </tr>
21
41
  <% end %>
22
42
  </table>
@@ -33,21 +53,22 @@
33
53
  <th><%= t('TID') %></th>
34
54
  <th><%= t('JID') %></th>
35
55
  <th><%= t('Queue') %></th>
36
- <th><%= t('Class') %></th>
56
+ <th><%= t('Job') %></th>
37
57
  <th><%= t('Arguments') %></th>
38
58
  <th><%= t('Started') %></th>
39
59
  </thead>
40
60
  <% workers.each_with_index do |(process, thread, msg), index| %>
61
+ <% job = Sidekiq::Job.new(msg['payload']) -%>
41
62
  <tr>
42
63
  <td><%= process %></td>
43
64
  <td><%= thread %></td>
44
- <td><%= msg['payload']['jid'] %></td>
65
+ <td><%= job.jid %></td>
45
66
  <td>
46
67
  <a href="<%= root_path %>queues/<%= msg['queue'] %>"><%= msg['queue'] %></a>
47
68
  </td>
48
- <td><%= msg['payload']['class'] %></td>
69
+ <td><%= job.display_class %></td>
49
70
  <td>
50
- <div class="args"><%= display_args(msg['payload']['args']) %></div>
71
+ <div class="args"><%= display_args(job.display_args) %></div>
51
72
  </td>
52
73
  <td><%= relative_time(Time.at(msg['run_at'])) %></td>
53
74
  </tr>