sidekiq 3.0.2 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

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>