sidekiq 6.4.1 → 7.2.1
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 +307 -12
- data/README.md +43 -35
- data/bin/multi_queue_bench +268 -0
- data/bin/sidekiq +3 -8
- data/bin/sidekiqload +206 -114
- data/bin/sidekiqmon +3 -0
- data/lib/sidekiq/api.rb +356 -167
- data/lib/sidekiq/capsule.rb +127 -0
- data/lib/sidekiq/cli.rb +85 -89
- data/lib/sidekiq/client.rb +87 -59
- data/lib/sidekiq/component.rb +68 -0
- data/lib/sidekiq/config.rb +287 -0
- data/lib/sidekiq/deploy.rb +62 -0
- data/lib/sidekiq/embedded.rb +61 -0
- data/lib/sidekiq/fetch.rb +21 -22
- data/lib/sidekiq/job.rb +371 -10
- data/lib/sidekiq/job_logger.rb +2 -2
- data/lib/sidekiq/job_retry.rb +97 -58
- data/lib/sidekiq/job_util.rb +62 -20
- data/lib/sidekiq/launcher.rb +91 -83
- data/lib/sidekiq/logger.rb +6 -45
- data/lib/sidekiq/manager.rb +33 -32
- data/lib/sidekiq/metrics/query.rb +156 -0
- data/lib/sidekiq/metrics/shared.rb +95 -0
- data/lib/sidekiq/metrics/tracking.rb +140 -0
- data/lib/sidekiq/middleware/chain.rb +96 -51
- data/lib/sidekiq/middleware/current_attributes.rb +58 -20
- 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 +11 -3
- data/lib/sidekiq/processor.rb +81 -80
- data/lib/sidekiq/rails.rb +21 -14
- data/lib/sidekiq/redis_client_adapter.rb +111 -0
- data/lib/sidekiq/redis_connection.rb +16 -85
- data/lib/sidekiq/ring_buffer.rb +29 -0
- data/lib/sidekiq/scheduled.rb +66 -38
- data/lib/sidekiq/testing/inline.rb +4 -4
- data/lib/sidekiq/testing.rb +67 -75
- 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 +107 -10
- data/lib/sidekiq/web/csrf_protection.rb +8 -5
- data/lib/sidekiq/web/helpers.rb +65 -43
- data/lib/sidekiq/web.rb +19 -14
- data/lib/sidekiq/worker_compatibility_alias.rb +13 -0
- data/lib/sidekiq.rb +84 -207
- data/sidekiq.gemspec +12 -10
- data/web/assets/javascripts/application.js +92 -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 +182 -0
- data/web/assets/javascripts/dashboard.js +10 -249
- data/web/assets/javascripts/metrics.js +298 -0
- data/web/assets/stylesheets/application-dark.css +4 -0
- data/web/assets/stylesheets/application-rtl.css +2 -91
- data/web/assets/stylesheets/application.css +75 -299
- 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 +84 -69
- data/web/locales/es.yml +68 -68
- data/web/locales/fa.yml +65 -65
- data/web/locales/fr.yml +81 -67
- data/web/locales/gd.yml +99 -0
- 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 +83 -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 +7 -7
- data/web/views/busy.erb +50 -34
- data/web/views/dashboard.erb +26 -4
- data/web/views/filtering.erb +7 -0
- data/web/views/metrics.erb +91 -0
- data/web/views/metrics_for_job.erb +59 -0
- data/web/views/morgue.erb +5 -9
- data/web/views/queue.erb +15 -15
- data/web/views/queues.erb +9 -3
- data/web/views/retries.erb +5 -9
- data/web/views/scheduled.erb +12 -13
- metadata +58 -27
- data/lib/sidekiq/delay.rb +0 -43
- 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/util.rb +0 -108
- data/lib/sidekiq/worker.rb +0 -362
- /data/{LICENSE → LICENSE.txt} +0 -0
@@ -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
|
}
|
@@ -202,8 +209,7 @@ table .table-checkbox label {
|
|
202
209
|
|
203
210
|
.navbar .navbar-brand .status {
|
204
211
|
color: #585454;
|
205
|
-
display: inline
|
206
|
-
width: 75px;
|
212
|
+
display: inline;
|
207
213
|
}
|
208
214
|
|
209
215
|
|
@@ -364,6 +370,15 @@ img.smallogo {
|
|
364
370
|
.stat p {
|
365
371
|
font-size: 0.9em;
|
366
372
|
}
|
373
|
+
|
374
|
+
.num {
|
375
|
+
font-family: monospace;
|
376
|
+
}
|
377
|
+
|
378
|
+
td.num {
|
379
|
+
text-align: right;
|
380
|
+
}
|
381
|
+
|
367
382
|
@media (max-width: 767px) {
|
368
383
|
.stats-container {
|
369
384
|
display: block;
|
@@ -411,51 +426,27 @@ div.interval-slider input {
|
|
411
426
|
background: currentcolor;
|
412
427
|
}
|
413
428
|
|
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;
|
429
|
+
#realtime-legend {
|
430
|
+
margin-top: -20px;
|
431
|
+
padding-left: 30px;
|
432
|
+
display: flex;
|
433
|
+
justify-content: end;
|
434
|
+
align-items: center;
|
426
435
|
}
|
427
|
-
#realtime-legend
|
428
|
-
|
429
|
-
display: inline-block;
|
430
|
-
margin: 0 0 0 20px;
|
436
|
+
#realtime-legend > * {
|
437
|
+
min-width: 14rem;
|
431
438
|
}
|
432
|
-
#realtime-legend .swatch
|
433
|
-
#history-legend .swatch {
|
439
|
+
#realtime-legend .swatch {
|
434
440
|
display: inline-block;
|
435
441
|
width: 10px;
|
436
442
|
height: 10px;
|
437
|
-
margin: 0
|
438
|
-
}
|
439
|
-
#realtime-legend .tag,
|
440
|
-
#history-legend .tag {
|
441
|
-
display: inline-block;
|
443
|
+
margin: 0 5px;
|
442
444
|
}
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
#history-legend {
|
447
|
-
float: none;
|
448
|
-
width: 100%;
|
449
|
-
margin-bottom: 20px;
|
450
|
-
}
|
445
|
+
#realtime-legend .time {
|
446
|
+
min-width: auto;
|
447
|
+
text-align: right;
|
451
448
|
}
|
452
449
|
|
453
|
-
@media (max-width: 500px) {
|
454
|
-
#realtime-legend,
|
455
|
-
#history-legend {
|
456
|
-
text-align: center;
|
457
|
-
}
|
458
|
-
}
|
459
450
|
/* Beacon
|
460
451
|
********************************** */
|
461
452
|
|
@@ -615,247 +606,6 @@ div.interval-slider input {
|
|
615
606
|
}
|
616
607
|
}
|
617
608
|
|
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
609
|
.code-wrap {
|
860
610
|
white-space: normal;
|
861
611
|
}
|
@@ -883,37 +633,25 @@ div.interval-slider input {
|
|
883
633
|
}
|
884
634
|
}
|
885
635
|
|
886
|
-
.redis-url
|
636
|
+
.redis-url {
|
887
637
|
overflow: hidden;
|
888
638
|
white-space: nowrap;
|
889
639
|
}
|
890
640
|
|
891
641
|
@media (min-width: 768px) {
|
892
642
|
.redis-url {
|
893
|
-
max-width:
|
894
|
-
}
|
895
|
-
|
896
|
-
.redis-namespace {
|
897
|
-
max-width: 150px;
|
643
|
+
max-width: 250px;
|
898
644
|
}
|
899
645
|
}
|
900
646
|
|
901
647
|
@media (min-width: 992px) {
|
902
648
|
.redis-url {
|
903
|
-
max-width:
|
904
|
-
}
|
905
|
-
|
906
|
-
.redis-namespace {
|
907
|
-
max-width: 300px;
|
649
|
+
max-width: 490px;
|
908
650
|
}
|
909
651
|
}
|
910
652
|
@media (min-width: 1200px) {
|
911
653
|
.redis-url {
|
912
|
-
max-width:
|
913
|
-
}
|
914
|
-
|
915
|
-
.redis-namespace {
|
916
|
-
max-width: 350px;
|
654
|
+
max-width: 600px;
|
917
655
|
}
|
918
656
|
}
|
919
657
|
|
@@ -947,11 +685,49 @@ div.interval-slider input {
|
|
947
685
|
}
|
948
686
|
|
949
687
|
.info-circle {
|
950
|
-
color: #
|
951
|
-
background-color: #
|
688
|
+
color: #333;
|
689
|
+
background-color: #ccc;
|
952
690
|
border-radius: 50%;
|
953
691
|
text-align: center;
|
954
692
|
vertical-align: middle;
|
955
693
|
padding: 3px 7px;
|
956
694
|
margin-left: 5px;
|
957
695
|
}
|
696
|
+
|
697
|
+
.metrics-swatch-wrapper {
|
698
|
+
display: flex;
|
699
|
+
align-items: center;
|
700
|
+
gap: 6px;
|
701
|
+
}
|
702
|
+
|
703
|
+
.metrics-swatch[type=checkbox] {
|
704
|
+
display: inline-block;
|
705
|
+
width: 16px;
|
706
|
+
height: 16px;
|
707
|
+
margin: 0;
|
708
|
+
border-radius: 2px;
|
709
|
+
appearance: none;
|
710
|
+
-webkit-appearance: none;
|
711
|
+
-moz-appearance: none;
|
712
|
+
border: 1px solid #bbb;
|
713
|
+
color: white;
|
714
|
+
background-color: currentColor;
|
715
|
+
}
|
716
|
+
|
717
|
+
/* We need to add the checkmark since we've taken over the appearance */
|
718
|
+
.metrics-swatch[type=checkbox]:checked {
|
719
|
+
border-color: currentColor;
|
720
|
+
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");
|
721
|
+
background-size: 100% 100%;
|
722
|
+
background-position: center;
|
723
|
+
background-repeat: no-repeat;
|
724
|
+
}
|
725
|
+
|
726
|
+
.metrics-swatch[type=checkbox]:focus {
|
727
|
+
outline: 1px solid #888;
|
728
|
+
outline-offset: 2px;
|
729
|
+
}
|
730
|
+
|
731
|
+
canvas {
|
732
|
+
margin: 20px 0 30px;
|
733
|
+
}
|
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: خامل
|