sidekiq 6.3.1 → 7.0.7
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.
- checksums.yaml +4 -4
- data/Changes.md +205 -11
- data/LICENSE.txt +9 -0
- data/README.md +45 -32
- data/bin/sidekiq +4 -9
- data/bin/sidekiqload +189 -117
- data/bin/sidekiqmon +4 -1
- data/lib/generators/sidekiq/job_generator.rb +57 -0
- data/lib/generators/sidekiq/templates/{worker.rb.erb → job.rb.erb} +2 -2
- data/lib/generators/sidekiq/templates/{worker_spec.rb.erb → job_spec.rb.erb} +1 -1
- data/lib/generators/sidekiq/templates/{worker_test.rb.erb → job_test.rb.erb} +1 -1
- data/lib/sidekiq/api.rb +308 -188
- data/lib/sidekiq/capsule.rb +127 -0
- data/lib/sidekiq/cli.rb +85 -80
- data/lib/sidekiq/client.rb +74 -81
- data/lib/sidekiq/{util.rb → component.rb} +13 -40
- data/lib/sidekiq/config.rb +270 -0
- data/lib/sidekiq/deploy.rb +62 -0
- data/lib/sidekiq/embedded.rb +61 -0
- data/lib/sidekiq/fetch.rb +23 -24
- data/lib/sidekiq/job.rb +375 -10
- data/lib/sidekiq/job_logger.rb +16 -28
- data/lib/sidekiq/job_retry.rb +81 -57
- data/lib/sidekiq/job_util.rb +105 -0
- data/lib/sidekiq/launcher.rb +103 -95
- data/lib/sidekiq/logger.rb +9 -44
- data/lib/sidekiq/manager.rb +40 -41
- data/lib/sidekiq/metrics/query.rb +153 -0
- data/lib/sidekiq/metrics/shared.rb +95 -0
- data/lib/sidekiq/metrics/tracking.rb +136 -0
- data/lib/sidekiq/middleware/chain.rb +96 -51
- data/lib/sidekiq/middleware/current_attributes.rb +17 -13
- data/lib/sidekiq/middleware/i18n.rb +6 -4
- data/lib/sidekiq/middleware/modules.rb +21 -0
- data/lib/sidekiq/monitor.rb +17 -4
- data/lib/sidekiq/paginator.rb +17 -9
- data/lib/sidekiq/processor.rb +60 -60
- data/lib/sidekiq/rails.rb +12 -10
- data/lib/sidekiq/redis_client_adapter.rb +115 -0
- data/lib/sidekiq/redis_connection.rb +13 -82
- data/lib/sidekiq/ring_buffer.rb +29 -0
- data/lib/sidekiq/scheduled.rb +75 -37
- data/lib/sidekiq/testing/inline.rb +4 -4
- data/lib/sidekiq/testing.rb +41 -68
- data/lib/sidekiq/transaction_aware_client.rb +44 -0
- data/lib/sidekiq/version.rb +2 -1
- data/lib/sidekiq/web/action.rb +3 -3
- data/lib/sidekiq/web/application.rb +45 -11
- data/lib/sidekiq/web/csrf_protection.rb +3 -3
- data/lib/sidekiq/web/helpers.rb +35 -21
- data/lib/sidekiq/web.rb +10 -17
- data/lib/sidekiq/worker_compatibility_alias.rb +13 -0
- data/lib/sidekiq.rb +85 -202
- data/sidekiq.gemspec +20 -10
- data/web/assets/javascripts/application.js +76 -26
- data/web/assets/javascripts/base-charts.js +106 -0
- data/web/assets/javascripts/chart.min.js +13 -0
- data/web/assets/javascripts/chartjs-plugin-annotation.min.js +7 -0
- data/web/assets/javascripts/dashboard-charts.js +166 -0
- data/web/assets/javascripts/dashboard.js +3 -240
- data/web/assets/javascripts/metrics.js +264 -0
- data/web/assets/stylesheets/application-dark.css +17 -17
- data/web/assets/stylesheets/application-rtl.css +2 -91
- data/web/assets/stylesheets/application.css +69 -302
- data/web/locales/ar.yml +70 -70
- data/web/locales/cs.yml +62 -62
- data/web/locales/da.yml +60 -53
- data/web/locales/de.yml +65 -65
- data/web/locales/el.yml +43 -24
- data/web/locales/en.yml +82 -69
- data/web/locales/es.yml +68 -68
- data/web/locales/fa.yml +65 -65
- data/web/locales/fr.yml +67 -67
- data/web/locales/he.yml +65 -64
- data/web/locales/hi.yml +59 -59
- data/web/locales/it.yml +53 -53
- data/web/locales/ja.yml +73 -68
- data/web/locales/ko.yml +52 -52
- data/web/locales/lt.yml +66 -66
- data/web/locales/nb.yml +61 -61
- data/web/locales/nl.yml +52 -52
- data/web/locales/pl.yml +45 -45
- data/web/locales/pt-br.yml +63 -55
- data/web/locales/pt.yml +51 -51
- data/web/locales/ru.yml +67 -66
- data/web/locales/sv.yml +53 -53
- data/web/locales/ta.yml +60 -60
- data/web/locales/uk.yml +62 -61
- data/web/locales/ur.yml +64 -64
- data/web/locales/vi.yml +67 -67
- data/web/locales/zh-cn.yml +43 -16
- data/web/locales/zh-tw.yml +42 -8
- data/web/views/_footer.erb +5 -2
- data/web/views/_job_info.erb +18 -2
- data/web/views/_metrics_period_select.erb +12 -0
- data/web/views/_nav.erb +1 -1
- data/web/views/_paging.erb +2 -0
- data/web/views/_poll_link.erb +1 -1
- data/web/views/_summary.erb +1 -1
- data/web/views/busy.erb +42 -26
- data/web/views/dashboard.erb +36 -4
- data/web/views/metrics.erb +82 -0
- data/web/views/metrics_for_job.erb +71 -0
- data/web/views/morgue.erb +5 -9
- data/web/views/queue.erb +15 -15
- data/web/views/queues.erb +3 -1
- data/web/views/retries.erb +5 -9
- data/web/views/scheduled.erb +12 -13
- metadata +68 -32
- data/LICENSE +0 -9
- data/lib/generators/sidekiq/worker_generator.rb +0 -57
- data/lib/sidekiq/delay.rb +0 -41
- data/lib/sidekiq/exception_handler.rb +0 -27
- data/lib/sidekiq/extensions/action_mailer.rb +0 -48
- data/lib/sidekiq/extensions/active_record.rb +0 -43
- data/lib/sidekiq/extensions/class_methods.rb +0 -43
- data/lib/sidekiq/extensions/generic_proxy.rb +0 -33
- data/lib/sidekiq/worker.rb +0 -311
@@ -21,7 +21,7 @@ body {
|
|
21
21
|
a {
|
22
22
|
color: #b1003e;
|
23
23
|
}
|
24
|
-
a:active, a:hover {
|
24
|
+
a:active, a:hover, a:focus {
|
25
25
|
color: #4b001a;
|
26
26
|
}
|
27
27
|
|
@@ -67,10 +67,17 @@ body {
|
|
67
67
|
padding: 0 20px;
|
68
68
|
}
|
69
69
|
|
70
|
-
h3 {
|
70
|
+
h1, h2, h3 {
|
71
|
+
font-size: 24px;
|
71
72
|
line-height: 45px;
|
72
73
|
}
|
73
74
|
|
75
|
+
.header-container, .header-container .page-title-container {
|
76
|
+
display: flex;
|
77
|
+
justify-content: space-between;
|
78
|
+
align-items: center;
|
79
|
+
}
|
80
|
+
|
74
81
|
.centered {
|
75
82
|
text-align: center;
|
76
83
|
}
|
@@ -89,11 +96,10 @@ header.row .pagination {
|
|
89
96
|
.summary_bar .summary {
|
90
97
|
margin-top: 12px;
|
91
98
|
background-color: #fff;
|
92
|
-
box-shadow: 0 0 5px rgba(50, 50, 50, 0.25);
|
93
99
|
border-radius: 4px;
|
100
|
+
border: 1px solid rgba(0, 0, 0, 0.1);
|
94
101
|
padding: 8px;
|
95
102
|
margin-bottom: 10px;
|
96
|
-
border-width: 0;
|
97
103
|
}
|
98
104
|
.poll-wrapper {
|
99
105
|
margin: 9px;
|
@@ -203,6 +209,7 @@ table .table-checkbox label {
|
|
203
209
|
|
204
210
|
.navbar .navbar-brand .status {
|
205
211
|
color: #585454;
|
212
|
+
display: inline;
|
206
213
|
}
|
207
214
|
|
208
215
|
|
@@ -350,6 +357,7 @@ img.smallogo {
|
|
350
357
|
text-align: center;
|
351
358
|
margin-right: 20px;
|
352
359
|
border: 1px solid rgba(0, 0, 0, 0.1);
|
360
|
+
border-radius: 4px;
|
353
361
|
padding: 5px;
|
354
362
|
width: 150px;
|
355
363
|
margin-bottom: 20px;
|
@@ -405,57 +413,31 @@ span.current-interval {
|
|
405
413
|
|
406
414
|
div.interval-slider input {
|
407
415
|
width: 160px;
|
408
|
-
height: 3px;
|
409
|
-
margin-top: 5px;
|
410
416
|
border-radius: 2px;
|
411
417
|
background: currentcolor;
|
412
418
|
}
|
413
419
|
|
414
|
-
#realtime-legend
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
}
|
421
|
-
#realtime-legend .timestamp,
|
422
|
-
#history-legend .timestamp {
|
423
|
-
display: inline-block;
|
424
|
-
width: 220px;
|
425
|
-
text-align: right;
|
420
|
+
#realtime-legend {
|
421
|
+
margin-top: -20px;
|
422
|
+
padding-left: 30px;
|
423
|
+
display: flex;
|
424
|
+
justify-content: end;
|
425
|
+
align-items: center;
|
426
426
|
}
|
427
|
-
#realtime-legend
|
428
|
-
|
429
|
-
display: inline-block;
|
430
|
-
margin: 0 0 0 20px;
|
427
|
+
#realtime-legend > * {
|
428
|
+
min-width: 14rem;
|
431
429
|
}
|
432
|
-
#realtime-legend .swatch
|
433
|
-
#history-legend .swatch {
|
430
|
+
#realtime-legend .swatch {
|
434
431
|
display: inline-block;
|
435
432
|
width: 10px;
|
436
433
|
height: 10px;
|
437
|
-
margin: 0
|
438
|
-
}
|
439
|
-
#realtime-legend .tag,
|
440
|
-
#history-legend .tag {
|
441
|
-
display: inline-block;
|
434
|
+
margin: 0 5px;
|
442
435
|
}
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
#history-legend {
|
447
|
-
float: none;
|
448
|
-
width: 100%;
|
449
|
-
margin-bottom: 20px;
|
450
|
-
}
|
436
|
+
#realtime-legend .time {
|
437
|
+
min-width: auto;
|
438
|
+
text-align: right;
|
451
439
|
}
|
452
440
|
|
453
|
-
@media (max-width: 500px) {
|
454
|
-
#realtime-legend,
|
455
|
-
#history-legend {
|
456
|
-
text-align: center;
|
457
|
-
}
|
458
|
-
}
|
459
441
|
/* Beacon
|
460
442
|
********************************** */
|
461
443
|
|
@@ -615,247 +597,6 @@ div.interval-slider input {
|
|
615
597
|
}
|
616
598
|
}
|
617
599
|
|
618
|
-
.rickshaw_graph .detail {
|
619
|
-
pointer-events: none;
|
620
|
-
position: absolute;
|
621
|
-
top: 0;
|
622
|
-
z-index: 2;
|
623
|
-
background: rgba(0, 0, 0, .9);
|
624
|
-
bottom: 0;
|
625
|
-
width: 1px;
|
626
|
-
transition: opacity .25s linear;
|
627
|
-
}
|
628
|
-
.rickshaw_graph .detail.inactive {
|
629
|
-
opacity: 0
|
630
|
-
}
|
631
|
-
.rickshaw_graph .detail .item.active {
|
632
|
-
opacity: 1
|
633
|
-
}
|
634
|
-
.rickshaw_graph .detail .x_label {
|
635
|
-
font-family: Arial, sans-serif;
|
636
|
-
border-radius: 3px;
|
637
|
-
padding: 6px;
|
638
|
-
opacity: .7;
|
639
|
-
border: 1px solid #e0e0e0;
|
640
|
-
font-size: 12px;
|
641
|
-
position: absolute;
|
642
|
-
background: #fff;
|
643
|
-
white-space: nowrap
|
644
|
-
}
|
645
|
-
.rickshaw_graph .detail .x_label.left {
|
646
|
-
left: 0
|
647
|
-
}
|
648
|
-
.rickshaw_graph .detail .x_label.right {
|
649
|
-
right: 0
|
650
|
-
}
|
651
|
-
.rickshaw_graph .detail .item {
|
652
|
-
position: absolute;
|
653
|
-
z-index: 2;
|
654
|
-
border-radius: 3px;
|
655
|
-
padding: .25em;
|
656
|
-
font-size: 12px;
|
657
|
-
font-family: Arial, sans-serif;
|
658
|
-
opacity: 0;
|
659
|
-
background: rgba(0, 0, 0, .4);
|
660
|
-
color: #fff;
|
661
|
-
border: 1px solid rgba(0, 0, 0, .4);
|
662
|
-
margin-left: 1em;
|
663
|
-
margin-right: 1em;
|
664
|
-
margin-top: -1em;
|
665
|
-
white-space: nowrap
|
666
|
-
}
|
667
|
-
.rickshaw_graph .detail .item.left {
|
668
|
-
left: 0
|
669
|
-
}
|
670
|
-
.rickshaw_graph .detail .item.right {
|
671
|
-
right: 0
|
672
|
-
}
|
673
|
-
.rickshaw_graph .detail .item.active {
|
674
|
-
opacity: 1;
|
675
|
-
background: rgba(0, 0, 0, .8)
|
676
|
-
}
|
677
|
-
.rickshaw_graph .detail .item:after {
|
678
|
-
position: absolute;
|
679
|
-
display: block;
|
680
|
-
width: 0;
|
681
|
-
height: 0;
|
682
|
-
content: "";
|
683
|
-
border: 5px solid transparent
|
684
|
-
}
|
685
|
-
.rickshaw_graph .detail .item.left:after {
|
686
|
-
top: 1em;
|
687
|
-
left: -5px;
|
688
|
-
margin-top: -5px;
|
689
|
-
border-right-color: rgba(0, 0, 0, .8);
|
690
|
-
border-left-width: 0
|
691
|
-
}
|
692
|
-
.rickshaw_graph .detail .item.right:after {
|
693
|
-
top: 1em;
|
694
|
-
right: -5px;
|
695
|
-
margin-top: -5px;
|
696
|
-
border-left-color: rgba(0, 0, 0, .8);
|
697
|
-
border-right-width: 0
|
698
|
-
}
|
699
|
-
.rickshaw_graph .detail .dot {
|
700
|
-
width: 4px;
|
701
|
-
height: 4px;
|
702
|
-
margin-left: -3px;
|
703
|
-
margin-top: -3.5px;
|
704
|
-
border-radius: 5px;
|
705
|
-
position: absolute;
|
706
|
-
box-shadow: 0 0 2px rgba(0, 0, 0, .6);
|
707
|
-
box-sizing: content-box;
|
708
|
-
background: #fff;
|
709
|
-
border-width: 2px;
|
710
|
-
border-style: solid;
|
711
|
-
display: none;
|
712
|
-
background-clip: padding-box
|
713
|
-
}
|
714
|
-
.rickshaw_graph .detail .dot.active {
|
715
|
-
display: block
|
716
|
-
}
|
717
|
-
.rickshaw_graph {
|
718
|
-
position: relative
|
719
|
-
}
|
720
|
-
.rickshaw_graph svg {
|
721
|
-
display: block;
|
722
|
-
overflow: hidden
|
723
|
-
}
|
724
|
-
.rickshaw_graph .x_tick {
|
725
|
-
position: absolute;
|
726
|
-
top: 0;
|
727
|
-
bottom: 0;
|
728
|
-
width: 0;
|
729
|
-
border-left: 1px dotted rgba(0, 0, 0, .5);
|
730
|
-
pointer-events: none
|
731
|
-
}
|
732
|
-
.rickshaw_graph .x_tick .title {
|
733
|
-
position: absolute;
|
734
|
-
font-family: Arial, sans-serif;
|
735
|
-
white-space: nowrap;
|
736
|
-
margin-left: 3px;
|
737
|
-
bottom: 1px
|
738
|
-
}
|
739
|
-
.rickshaw_graph .y_axis,
|
740
|
-
.rickshaw_graph .x_axis_d3 {
|
741
|
-
fill: none
|
742
|
-
}
|
743
|
-
.rickshaw_graph .y_ticks .tick line,
|
744
|
-
.rickshaw_graph .x_ticks_d3 .tick {
|
745
|
-
stroke: rgba(0, 0, 0, .16);
|
746
|
-
stroke-width: 2px;
|
747
|
-
shape-rendering: crisp-edges;
|
748
|
-
pointer-events: none
|
749
|
-
}
|
750
|
-
.rickshaw_graph .y_grid .tick,
|
751
|
-
.rickshaw_graph .x_grid_d3 .tick {
|
752
|
-
z-index: -1;
|
753
|
-
stroke: rgba(0, 0, 0, .2);
|
754
|
-
stroke-width: 1px;
|
755
|
-
stroke-dasharray: 1 1
|
756
|
-
}
|
757
|
-
.rickshaw_graph .y_grid .tick[data-y-value="0"] {
|
758
|
-
stroke-dasharray: 1 0
|
759
|
-
}
|
760
|
-
.rickshaw_graph .y_grid path,
|
761
|
-
.rickshaw_graph .x_grid_d3 path {
|
762
|
-
fill: none;
|
763
|
-
stroke: none
|
764
|
-
}
|
765
|
-
.rickshaw_graph .y_ticks path,
|
766
|
-
.rickshaw_graph .x_ticks_d3 path {
|
767
|
-
fill: none;
|
768
|
-
stroke: gray
|
769
|
-
}
|
770
|
-
.rickshaw_graph .y_ticks text,
|
771
|
-
.rickshaw_graph .x_ticks_d3 text {
|
772
|
-
opacity: .7;
|
773
|
-
font-size: 12px;
|
774
|
-
pointer-events: none
|
775
|
-
}
|
776
|
-
.rickshaw_graph .x_tick.glow .title,
|
777
|
-
.rickshaw_graph .y_ticks.glow text {
|
778
|
-
fill: #000;
|
779
|
-
color: #000;
|
780
|
-
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)
|
781
|
-
}
|
782
|
-
.rickshaw_graph .x_tick.inverse .title,
|
783
|
-
.rickshaw_graph .y_ticks.inverse text {
|
784
|
-
fill: #fff;
|
785
|
-
color: #fff;
|
786
|
-
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)
|
787
|
-
}
|
788
|
-
.rickshaw_legend {
|
789
|
-
font-family: Arial;
|
790
|
-
color: #fff;
|
791
|
-
background: #404040;
|
792
|
-
display: inline-block;
|
793
|
-
padding: 12px 5px;
|
794
|
-
border-radius: 2px;
|
795
|
-
position: relative
|
796
|
-
}
|
797
|
-
.rickshaw_legend:hover {
|
798
|
-
z-index: 10
|
799
|
-
}
|
800
|
-
.rickshaw_legend .swatch {
|
801
|
-
width: 10px;
|
802
|
-
height: 10px;
|
803
|
-
border: 1px solid rgba(0, 0, 0, .2)
|
804
|
-
}
|
805
|
-
.rickshaw_legend .line {
|
806
|
-
clear: both;
|
807
|
-
line-height: 140%;
|
808
|
-
padding-right: 15px
|
809
|
-
}
|
810
|
-
.rickshaw_legend .line .swatch {
|
811
|
-
display: inline-block;
|
812
|
-
margin-right: 3px;
|
813
|
-
border-radius: 2px
|
814
|
-
}
|
815
|
-
.rickshaw_legend .label {
|
816
|
-
margin: 0;
|
817
|
-
white-space: nowrap;
|
818
|
-
display: inline;
|
819
|
-
font-size: inherit;
|
820
|
-
background-color: transparent;
|
821
|
-
color: inherit;
|
822
|
-
font-weight: 400;
|
823
|
-
line-height: normal;
|
824
|
-
padding: 0;
|
825
|
-
text-shadow: none
|
826
|
-
}
|
827
|
-
.rickshaw_legend .action:hover {
|
828
|
-
opacity: .6
|
829
|
-
}
|
830
|
-
.rickshaw_legend .action {
|
831
|
-
margin-right: .2em;
|
832
|
-
opacity: .5;
|
833
|
-
cursor: pointer;
|
834
|
-
}
|
835
|
-
.rickshaw_legend .line.disabled {
|
836
|
-
opacity: .4
|
837
|
-
}
|
838
|
-
.rickshaw_legend ul {
|
839
|
-
list-style-type: none;
|
840
|
-
margin: 0;
|
841
|
-
padding: 0;
|
842
|
-
margin: 2px;
|
843
|
-
cursor: pointer
|
844
|
-
}
|
845
|
-
.rickshaw_legend li {
|
846
|
-
padding: 0 0 0 2px;
|
847
|
-
min-width: 80px;
|
848
|
-
white-space: nowrap
|
849
|
-
}
|
850
|
-
.rickshaw_legend li:hover {
|
851
|
-
background: rgba(255, 255, 255, .08);
|
852
|
-
border-radius: 3px
|
853
|
-
}
|
854
|
-
.rickshaw_legend li:active {
|
855
|
-
background: rgba(255, 255, 255, .2);
|
856
|
-
border-radius: 3px
|
857
|
-
}
|
858
|
-
|
859
600
|
.code-wrap {
|
860
601
|
white-space: normal;
|
861
602
|
}
|
@@ -883,37 +624,25 @@ div.interval-slider input {
|
|
883
624
|
}
|
884
625
|
}
|
885
626
|
|
886
|
-
.redis-url
|
627
|
+
.redis-url {
|
887
628
|
overflow: hidden;
|
888
629
|
white-space: nowrap;
|
889
630
|
}
|
890
631
|
|
891
632
|
@media (min-width: 768px) {
|
892
633
|
.redis-url {
|
893
|
-
max-width:
|
894
|
-
}
|
895
|
-
|
896
|
-
.redis-namespace {
|
897
|
-
max-width: 150px;
|
634
|
+
max-width: 250px;
|
898
635
|
}
|
899
636
|
}
|
900
637
|
|
901
638
|
@media (min-width: 992px) {
|
902
639
|
.redis-url {
|
903
|
-
max-width:
|
904
|
-
}
|
905
|
-
|
906
|
-
.redis-namespace {
|
907
|
-
max-width: 300px;
|
640
|
+
max-width: 490px;
|
908
641
|
}
|
909
642
|
}
|
910
643
|
@media (min-width: 1200px) {
|
911
644
|
.redis-url {
|
912
|
-
max-width:
|
913
|
-
}
|
914
|
-
|
915
|
-
.redis-namespace {
|
916
|
-
max-width: 350px;
|
645
|
+
max-width: 600px;
|
917
646
|
}
|
918
647
|
}
|
919
648
|
|
@@ -947,11 +676,49 @@ div.interval-slider input {
|
|
947
676
|
}
|
948
677
|
|
949
678
|
.info-circle {
|
950
|
-
color: #
|
951
|
-
background-color: #
|
679
|
+
color: #333;
|
680
|
+
background-color: #ccc;
|
952
681
|
border-radius: 50%;
|
953
682
|
text-align: center;
|
954
683
|
vertical-align: middle;
|
955
684
|
padding: 3px 7px;
|
956
685
|
margin-left: 5px;
|
957
686
|
}
|
687
|
+
|
688
|
+
.metrics-swatch-wrapper {
|
689
|
+
display: flex;
|
690
|
+
align-items: center;
|
691
|
+
gap: 6px;
|
692
|
+
}
|
693
|
+
|
694
|
+
.metrics-swatch[type=checkbox] {
|
695
|
+
display: inline-block;
|
696
|
+
width: 16px;
|
697
|
+
height: 16px;
|
698
|
+
margin: 0;
|
699
|
+
border-radius: 2px;
|
700
|
+
appearance: none;
|
701
|
+
-webkit-appearance: none;
|
702
|
+
-moz-appearance: none;
|
703
|
+
border: 1px solid #bbb;
|
704
|
+
color: white;
|
705
|
+
background-color: currentColor;
|
706
|
+
}
|
707
|
+
|
708
|
+
/* We need to add the checkmark since we've taken over the appearance */
|
709
|
+
.metrics-swatch[type=checkbox]:checked {
|
710
|
+
border-color: currentColor;
|
711
|
+
background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
|
712
|
+
background-size: 100% 100%;
|
713
|
+
background-position: center;
|
714
|
+
background-repeat: no-repeat;
|
715
|
+
}
|
716
|
+
|
717
|
+
.metrics-swatch[type=checkbox]:focus {
|
718
|
+
outline: 1px solid #888;
|
719
|
+
outline-offset: 2px;
|
720
|
+
}
|
721
|
+
|
722
|
+
canvas {
|
723
|
+
margin: 20px 0 30px;
|
724
|
+
}
|
data/web/locales/ar.yml
CHANGED
@@ -1,87 +1,87 @@
|
|
1
1
|
# elements like %{queue} are variables and should not be translated
|
2
2
|
ar:
|
3
|
-
|
4
|
-
Dashboard: لوحة التحكم
|
5
|
-
Status: حالة
|
6
|
-
Time: وقت
|
7
|
-
Namespace: مساحة الاسم
|
8
|
-
Realtime: الزمن الفعلي
|
9
|
-
History: تاريخ
|
10
|
-
Busy: مشغول
|
11
|
-
Utilization: الاستخدام
|
12
|
-
Processed: تمت المعالجة
|
13
|
-
Failed: فشل
|
14
|
-
Scheduled: مجدول
|
15
|
-
Retries: إعادة محاولة
|
16
|
-
Enqueued: في الرتل
|
17
|
-
Worker: عامل
|
18
|
-
LivePoll: استعلام مباشر
|
19
|
-
StopPolling: إيقاف الاستعلامات
|
20
|
-
Queue: رتل
|
21
|
-
Class: نوع
|
22
|
-
Job: وظيفة
|
23
|
-
Arguments: مدخلات
|
24
|
-
Extras: إضافات
|
25
|
-
Started: بدأت
|
26
|
-
ShowAll: عرض الكل
|
27
|
-
CurrentMessagesInQueue: الرسائل الحالية في الرتل <span class='title'>%{queue}</span>
|
3
|
+
Actions: إجراءات
|
28
4
|
AddToQueue: إضافة إلى الرتل
|
5
|
+
AreYouSure: هل انت متأكد؟
|
29
6
|
AreYouSureDeleteJob: هل أنت متأكد من حذف الوظيفة؟
|
30
7
|
AreYouSureDeleteQueue: هل أنت متأكد من حذف الرتل %{queue}؟
|
8
|
+
Arguments: مدخلات
|
9
|
+
BackToApp: العودة إلى التطبيق
|
10
|
+
Busy: مشغول
|
11
|
+
Class: نوع
|
12
|
+
Connections: اتصالات
|
13
|
+
CreatedAt: أنشئت في
|
14
|
+
CurrentMessagesInQueue: الرسائل الحالية في الرتل <span class='title'>%{queue}</span>
|
15
|
+
Dashboard: لوحة التحكم
|
16
|
+
Dead: ميتة
|
17
|
+
DeadJobs: وظائف ميتة
|
31
18
|
Delete: حذف
|
32
|
-
Queues: أرتال
|
33
|
-
Size: حجم
|
34
|
-
Actions: إجراءات
|
35
|
-
NextRetry: إعادة المحاولة القادمة
|
36
|
-
RetryCount: عدد مرات إعادة المحاولة
|
37
|
-
RetryNow: إعادة المحاولة الآن
|
38
|
-
Kill: إبطال
|
39
|
-
LastRetry: إعادة المحاولة الأخيرة
|
40
|
-
OriginallyFailed: فشل أصلا
|
41
|
-
AreYouSure: هل انت متأكد؟
|
42
19
|
DeleteAll: حذف الكل
|
43
|
-
|
44
|
-
KillAll: إبطال الكل
|
45
|
-
NoRetriesFound: لاتوجد أي إعادة محاولة
|
20
|
+
Enqueued: في الرتل
|
46
21
|
Error: خطأ
|
22
|
+
ErrorBacktrace: تتبع الخطأ
|
47
23
|
ErrorClass: نوع الخطأ
|
48
24
|
ErrorMessage: رسالة الخطأ
|
49
|
-
|
25
|
+
Extras: إضافات
|
26
|
+
Failed: فشل
|
27
|
+
Failures: فشل
|
50
28
|
GoBack: إلى الخلف
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
29
|
+
History: تاريخ
|
30
|
+
Job: وظيفة
|
31
|
+
Jobs: وظائف
|
32
|
+
Kill: إبطال
|
33
|
+
KillAll: إبطال الكل
|
34
|
+
LastRetry: إعادة المحاولة الأخيرة
|
35
|
+
Latency: زمن الانتظار
|
36
|
+
LivePoll: استعلام مباشر
|
58
37
|
MemoryUsage: استخدام الذاكرة
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
OneMonth: شهر
|
63
|
-
ThreeMonths: ثلاثة أشهر
|
64
|
-
SixMonths: ستة أشهر
|
65
|
-
Failures: فشل
|
66
|
-
DeadJobs: وظائف ميتة
|
38
|
+
Name: الاسم
|
39
|
+
Namespace: مساحة الاسم
|
40
|
+
NextRetry: إعادة المحاولة القادمة
|
67
41
|
NoDeadJobsFound: لاتوجد وظائف ميتة
|
68
|
-
|
42
|
+
NoRetriesFound: لاتوجد أي إعادة محاولة
|
43
|
+
NoScheduledFound: لايوجد وظائف مجدولة
|
44
|
+
NotYetEnqueued: لم تدخل الرتل بعد
|
45
|
+
OneMonth: شهر
|
46
|
+
OneWeek: أسبوع
|
47
|
+
OriginallyFailed: فشل أصلا
|
48
|
+
Pause: إيقاف مؤقت
|
49
|
+
Paused: موقفة مؤقتاً
|
50
|
+
PeakMemoryUsage: ذروة استخدام الذاكرة
|
51
|
+
Plugins: الإضافات
|
52
|
+
PollingInterval: الفاصل الزمني بين الاستعلامات
|
69
53
|
Process: عملية
|
54
|
+
Processed: تمت المعالجة
|
70
55
|
Processes: عمليات
|
71
|
-
|
72
|
-
|
73
|
-
Threads: نياسب
|
74
|
-
Jobs: وظائف
|
75
|
-
Paused: موقفة مؤقتاً
|
76
|
-
Stop: إيقاف
|
56
|
+
Queue: رتل
|
57
|
+
Queues: أرتال
|
77
58
|
Quiet: هدوء
|
78
|
-
StopAll: إيقاف الكل
|
79
59
|
QuietAll: هدوء الكل
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
60
|
+
Realtime: الزمن الفعلي
|
61
|
+
Retries: إعادة محاولة
|
62
|
+
RetryAll: إعادة المحاولة للكل
|
63
|
+
RetryCount: عدد مرات إعادة المحاولة
|
64
|
+
RetryNow: إعادة المحاولة الآن
|
65
|
+
Scheduled: مجدول
|
66
|
+
ScheduledJobs: وظائف مجدولة
|
67
|
+
ShowAll: عرض الكل
|
68
|
+
SixMonths: ستة أشهر
|
69
|
+
Size: حجم
|
70
|
+
Started: بدأت
|
71
|
+
Status: حالة
|
72
|
+
Stop: إيقاف
|
73
|
+
StopAll: إيقاف الكل
|
74
|
+
StopPolling: إيقاف الاستعلامات
|
75
|
+
TextDirection: 'rtl'
|
76
|
+
Thread: نيسب
|
77
|
+
Threads: نياسب
|
78
|
+
ThreeMonths: ثلاثة أشهر
|
79
|
+
Time: وقت
|
80
|
+
Unpause: متابعة
|
81
|
+
Uptime: زمن العمل
|
82
|
+
Utilization: الاستخدام
|
83
|
+
Version: إصدار
|
84
|
+
When: متى
|
85
|
+
Worker: عامل
|
86
|
+
active: نشيط
|
87
|
+
idle: خامل
|