sidekiq 6.5.1 → 7.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/Changes.md +376 -12
  3. data/README.md +43 -35
  4. data/bin/multi_queue_bench +271 -0
  5. data/bin/sidekiq +3 -8
  6. data/bin/sidekiqload +213 -118
  7. data/bin/sidekiqmon +3 -0
  8. data/lib/active_job/queue_adapters/sidekiq_adapter.rb +88 -0
  9. data/lib/generators/sidekiq/job_generator.rb +2 -0
  10. data/lib/sidekiq/api.rb +378 -173
  11. data/lib/sidekiq/capsule.rb +132 -0
  12. data/lib/sidekiq/cli.rb +61 -63
  13. data/lib/sidekiq/client.rb +89 -40
  14. data/lib/sidekiq/component.rb +6 -2
  15. data/lib/sidekiq/config.rb +305 -0
  16. data/lib/sidekiq/deploy.rb +64 -0
  17. data/lib/sidekiq/embedded.rb +63 -0
  18. data/lib/sidekiq/fetch.rb +11 -14
  19. data/lib/sidekiq/iterable_job.rb +55 -0
  20. data/lib/sidekiq/job/interrupt_handler.rb +24 -0
  21. data/lib/sidekiq/job/iterable/active_record_enumerator.rb +53 -0
  22. data/lib/sidekiq/job/iterable/csv_enumerator.rb +47 -0
  23. data/lib/sidekiq/job/iterable/enumerators.rb +135 -0
  24. data/lib/sidekiq/job/iterable.rb +294 -0
  25. data/lib/sidekiq/job.rb +382 -10
  26. data/lib/sidekiq/job_logger.rb +8 -7
  27. data/lib/sidekiq/job_retry.rb +89 -46
  28. data/lib/sidekiq/job_util.rb +53 -15
  29. data/lib/sidekiq/launcher.rb +77 -69
  30. data/lib/sidekiq/logger.rb +2 -27
  31. data/lib/sidekiq/manager.rb +9 -11
  32. data/lib/sidekiq/metrics/query.rb +158 -0
  33. data/lib/sidekiq/metrics/shared.rb +106 -0
  34. data/lib/sidekiq/metrics/tracking.rb +148 -0
  35. data/lib/sidekiq/middleware/chain.rb +84 -48
  36. data/lib/sidekiq/middleware/current_attributes.rb +87 -20
  37. data/lib/sidekiq/middleware/modules.rb +2 -0
  38. data/lib/sidekiq/monitor.rb +19 -5
  39. data/lib/sidekiq/paginator.rb +11 -3
  40. data/lib/sidekiq/processor.rb +67 -56
  41. data/lib/sidekiq/rails.rb +22 -16
  42. data/lib/sidekiq/redis_client_adapter.rb +31 -71
  43. data/lib/sidekiq/redis_connection.rb +44 -117
  44. data/lib/sidekiq/ring_buffer.rb +2 -0
  45. data/lib/sidekiq/scheduled.rb +62 -35
  46. data/lib/sidekiq/systemd.rb +2 -0
  47. data/lib/sidekiq/testing.rb +37 -46
  48. data/lib/sidekiq/transaction_aware_client.rb +11 -5
  49. data/lib/sidekiq/version.rb +6 -1
  50. data/lib/sidekiq/web/action.rb +15 -5
  51. data/lib/sidekiq/web/application.rb +94 -24
  52. data/lib/sidekiq/web/csrf_protection.rb +10 -7
  53. data/lib/sidekiq/web/helpers.rb +118 -45
  54. data/lib/sidekiq/web/router.rb +5 -2
  55. data/lib/sidekiq/web.rb +67 -15
  56. data/lib/sidekiq/worker_compatibility_alias.rb +13 -0
  57. data/lib/sidekiq.rb +78 -266
  58. data/sidekiq.gemspec +12 -10
  59. data/web/assets/javascripts/application.js +46 -1
  60. data/web/assets/javascripts/base-charts.js +106 -0
  61. data/web/assets/javascripts/chart.min.js +13 -0
  62. data/web/assets/javascripts/chartjs-plugin-annotation.min.js +7 -0
  63. data/web/assets/javascripts/dashboard-charts.js +192 -0
  64. data/web/assets/javascripts/dashboard.js +11 -250
  65. data/web/assets/javascripts/metrics.js +298 -0
  66. data/web/assets/stylesheets/application-dark.css +4 -0
  67. data/web/assets/stylesheets/application-rtl.css +10 -89
  68. data/web/assets/stylesheets/application.css +98 -295
  69. data/web/locales/ar.yml +70 -70
  70. data/web/locales/cs.yml +62 -62
  71. data/web/locales/da.yml +60 -53
  72. data/web/locales/de.yml +65 -65
  73. data/web/locales/el.yml +43 -24
  74. data/web/locales/en.yml +83 -69
  75. data/web/locales/es.yml +68 -68
  76. data/web/locales/fa.yml +65 -65
  77. data/web/locales/fr.yml +80 -67
  78. data/web/locales/gd.yml +98 -0
  79. data/web/locales/he.yml +65 -64
  80. data/web/locales/hi.yml +59 -59
  81. data/web/locales/it.yml +85 -54
  82. data/web/locales/ja.yml +72 -68
  83. data/web/locales/ko.yml +52 -52
  84. data/web/locales/lt.yml +66 -66
  85. data/web/locales/nb.yml +61 -61
  86. data/web/locales/nl.yml +52 -52
  87. data/web/locales/pl.yml +45 -45
  88. data/web/locales/pt-br.yml +78 -69
  89. data/web/locales/pt.yml +51 -51
  90. data/web/locales/ru.yml +67 -66
  91. data/web/locales/sv.yml +53 -53
  92. data/web/locales/ta.yml +60 -60
  93. data/web/locales/tr.yml +100 -0
  94. data/web/locales/uk.yml +85 -61
  95. data/web/locales/ur.yml +64 -64
  96. data/web/locales/vi.yml +67 -67
  97. data/web/locales/zh-cn.yml +42 -16
  98. data/web/locales/zh-tw.yml +41 -8
  99. data/web/views/_footer.erb +17 -2
  100. data/web/views/_job_info.erb +18 -2
  101. data/web/views/_metrics_period_select.erb +12 -0
  102. data/web/views/_nav.erb +1 -1
  103. data/web/views/_paging.erb +2 -0
  104. data/web/views/_poll_link.erb +1 -1
  105. data/web/views/_summary.erb +7 -7
  106. data/web/views/busy.erb +49 -33
  107. data/web/views/dashboard.erb +28 -6
  108. data/web/views/filtering.erb +6 -0
  109. data/web/views/layout.erb +6 -6
  110. data/web/views/metrics.erb +90 -0
  111. data/web/views/metrics_for_job.erb +59 -0
  112. data/web/views/morgue.erb +5 -9
  113. data/web/views/queue.erb +15 -15
  114. data/web/views/queues.erb +9 -3
  115. data/web/views/retries.erb +5 -9
  116. data/web/views/scheduled.erb +12 -13
  117. metadata +61 -26
  118. data/lib/sidekiq/.DS_Store +0 -0
  119. data/lib/sidekiq/delay.rb +0 -43
  120. data/lib/sidekiq/extensions/action_mailer.rb +0 -48
  121. data/lib/sidekiq/extensions/active_record.rb +0 -43
  122. data/lib/sidekiq/extensions/class_methods.rb +0 -43
  123. data/lib/sidekiq/extensions/generic_proxy.rb +0 -33
  124. data/lib/sidekiq/worker.rb +0 -367
  125. /data/{LICENSE → LICENSE.txt} +0 -0
@@ -67,10 +67,25 @@ 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
+ .progress {
76
+ margin-bottom: 0;
77
+ }
78
+
79
+ .w-50 {
80
+ width: 50%;
81
+ }
82
+
83
+ .header-container, .header-container .page-title-container {
84
+ display: flex;
85
+ justify-content: space-between;
86
+ align-items: center;
87
+ }
88
+
74
89
  .centered {
75
90
  text-align: center;
76
91
  }
@@ -363,6 +378,15 @@ img.smallogo {
363
378
  .stat p {
364
379
  font-size: 0.9em;
365
380
  }
381
+
382
+ .num {
383
+ font-family: monospace;
384
+ }
385
+
386
+ td.num {
387
+ text-align: right;
388
+ }
389
+
366
390
  @media (max-width: 767px) {
367
391
  .stats-container {
368
392
  display: block;
@@ -410,51 +434,27 @@ div.interval-slider input {
410
434
  background: currentcolor;
411
435
  }
412
436
 
413
- #realtime-legend,
414
- #history-legend {
415
- width: 580px;
416
- text-align: left;
417
- margin-top: 5px;
418
- float: right;
419
- }
420
- #realtime-legend .timestamp,
421
- #history-legend .timestamp {
422
- display: inline-block;
423
- width: 220px;
424
- text-align: right;
437
+ #realtime-legend {
438
+ margin-top: -20px;
439
+ padding-left: 30px;
440
+ display: flex;
441
+ justify-content: end;
442
+ align-items: center;
425
443
  }
426
- #realtime-legend .line,
427
- #history-legend .line {
428
- display: inline-block;
429
- margin: 0 0 0 20px;
444
+ #realtime-legend > * {
445
+ min-width: 14rem;
430
446
  }
431
- #realtime-legend .swatch,
432
- #history-legend .swatch {
447
+ #realtime-legend .swatch {
433
448
  display: inline-block;
434
449
  width: 10px;
435
450
  height: 10px;
436
- margin: 0 8px 0 0;
451
+ margin: 0 5px;
437
452
  }
438
- #realtime-legend .tag,
439
- #history-legend .tag {
440
- display: inline-block;
441
- }
442
-
443
- @media (max-width: 790px) {
444
- #realtime-legend,
445
- #history-legend {
446
- float: none;
447
- width: 100%;
448
- margin-bottom: 20px;
449
- }
453
+ #realtime-legend .time {
454
+ min-width: auto;
455
+ text-align: right;
450
456
  }
451
457
 
452
- @media (max-width: 500px) {
453
- #realtime-legend,
454
- #history-legend {
455
- text-align: center;
456
- }
457
- }
458
458
  /* Beacon
459
459
  ********************************** */
460
460
 
@@ -614,247 +614,6 @@ div.interval-slider input {
614
614
  }
615
615
  }
616
616
 
617
- .rickshaw_graph .detail {
618
- pointer-events: none;
619
- position: absolute;
620
- top: 0;
621
- z-index: 2;
622
- background: rgba(0, 0, 0, .9);
623
- bottom: 0;
624
- width: 1px;
625
- transition: opacity .25s linear;
626
- }
627
- .rickshaw_graph .detail.inactive {
628
- opacity: 0
629
- }
630
- .rickshaw_graph .detail .item.active {
631
- opacity: 1
632
- }
633
- .rickshaw_graph .detail .x_label {
634
- font-family: Arial, sans-serif;
635
- border-radius: 3px;
636
- padding: 6px;
637
- opacity: .7;
638
- border: 1px solid #e0e0e0;
639
- font-size: 12px;
640
- position: absolute;
641
- background: #fff;
642
- white-space: nowrap
643
- }
644
- .rickshaw_graph .detail .x_label.left {
645
- left: 0
646
- }
647
- .rickshaw_graph .detail .x_label.right {
648
- right: 0
649
- }
650
- .rickshaw_graph .detail .item {
651
- position: absolute;
652
- z-index: 2;
653
- border-radius: 3px;
654
- padding: .25em;
655
- font-size: 12px;
656
- font-family: Arial, sans-serif;
657
- opacity: 0;
658
- background: rgba(0, 0, 0, .4);
659
- color: #fff;
660
- border: 1px solid rgba(0, 0, 0, .4);
661
- margin-left: 1em;
662
- margin-right: 1em;
663
- margin-top: -1em;
664
- white-space: nowrap
665
- }
666
- .rickshaw_graph .detail .item.left {
667
- left: 0
668
- }
669
- .rickshaw_graph .detail .item.right {
670
- right: 0
671
- }
672
- .rickshaw_graph .detail .item.active {
673
- opacity: 1;
674
- background: rgba(0, 0, 0, .8)
675
- }
676
- .rickshaw_graph .detail .item:after {
677
- position: absolute;
678
- display: block;
679
- width: 0;
680
- height: 0;
681
- content: "";
682
- border: 5px solid transparent
683
- }
684
- .rickshaw_graph .detail .item.left:after {
685
- top: 1em;
686
- left: -5px;
687
- margin-top: -5px;
688
- border-right-color: rgba(0, 0, 0, .8);
689
- border-left-width: 0
690
- }
691
- .rickshaw_graph .detail .item.right:after {
692
- top: 1em;
693
- right: -5px;
694
- margin-top: -5px;
695
- border-left-color: rgba(0, 0, 0, .8);
696
- border-right-width: 0
697
- }
698
- .rickshaw_graph .detail .dot {
699
- width: 4px;
700
- height: 4px;
701
- margin-left: -3px;
702
- margin-top: -3.5px;
703
- border-radius: 5px;
704
- position: absolute;
705
- box-shadow: 0 0 2px rgba(0, 0, 0, .6);
706
- box-sizing: content-box;
707
- background: #fff;
708
- border-width: 2px;
709
- border-style: solid;
710
- display: none;
711
- background-clip: padding-box
712
- }
713
- .rickshaw_graph .detail .dot.active {
714
- display: block
715
- }
716
- .rickshaw_graph {
717
- position: relative
718
- }
719
- .rickshaw_graph svg {
720
- display: block;
721
- overflow: hidden
722
- }
723
- .rickshaw_graph .x_tick {
724
- position: absolute;
725
- top: 0;
726
- bottom: 0;
727
- width: 0;
728
- border-left: 1px dotted rgba(0, 0, 0, .5);
729
- pointer-events: none
730
- }
731
- .rickshaw_graph .x_tick .title {
732
- position: absolute;
733
- font-family: Arial, sans-serif;
734
- white-space: nowrap;
735
- margin-left: 3px;
736
- bottom: 1px
737
- }
738
- .rickshaw_graph .y_axis,
739
- .rickshaw_graph .x_axis_d3 {
740
- fill: none
741
- }
742
- .rickshaw_graph .y_ticks .tick line,
743
- .rickshaw_graph .x_ticks_d3 .tick {
744
- stroke: rgba(0, 0, 0, .16);
745
- stroke-width: 2px;
746
- shape-rendering: crisp-edges;
747
- pointer-events: none
748
- }
749
- .rickshaw_graph .y_grid .tick,
750
- .rickshaw_graph .x_grid_d3 .tick {
751
- z-index: -1;
752
- stroke: rgba(0, 0, 0, .2);
753
- stroke-width: 1px;
754
- stroke-dasharray: 1 1
755
- }
756
- .rickshaw_graph .y_grid .tick[data-y-value="0"] {
757
- stroke-dasharray: 1 0
758
- }
759
- .rickshaw_graph .y_grid path,
760
- .rickshaw_graph .x_grid_d3 path {
761
- fill: none;
762
- stroke: none
763
- }
764
- .rickshaw_graph .y_ticks path,
765
- .rickshaw_graph .x_ticks_d3 path {
766
- fill: none;
767
- stroke: gray
768
- }
769
- .rickshaw_graph .y_ticks text,
770
- .rickshaw_graph .x_ticks_d3 text {
771
- opacity: .7;
772
- font-size: 12px;
773
- pointer-events: none
774
- }
775
- .rickshaw_graph .x_tick.glow .title,
776
- .rickshaw_graph .y_ticks.glow text {
777
- fill: #000;
778
- color: #000;
779
- 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)
780
- }
781
- .rickshaw_graph .x_tick.inverse .title,
782
- .rickshaw_graph .y_ticks.inverse text {
783
- fill: #fff;
784
- color: #fff;
785
- 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)
786
- }
787
- .rickshaw_legend {
788
- font-family: Arial;
789
- color: #fff;
790
- background: #404040;
791
- display: inline-block;
792
- padding: 12px 5px;
793
- border-radius: 2px;
794
- position: relative
795
- }
796
- .rickshaw_legend:hover {
797
- z-index: 10
798
- }
799
- .rickshaw_legend .swatch {
800
- width: 10px;
801
- height: 10px;
802
- border: 1px solid rgba(0, 0, 0, .2)
803
- }
804
- .rickshaw_legend .line {
805
- clear: both;
806
- line-height: 140%;
807
- padding-right: 15px
808
- }
809
- .rickshaw_legend .line .swatch {
810
- display: inline-block;
811
- margin-right: 3px;
812
- border-radius: 2px
813
- }
814
- .rickshaw_legend .label {
815
- margin: 0;
816
- white-space: nowrap;
817
- display: inline;
818
- font-size: inherit;
819
- background-color: transparent;
820
- color: inherit;
821
- font-weight: 400;
822
- line-height: normal;
823
- padding: 0;
824
- text-shadow: none
825
- }
826
- .rickshaw_legend .action:hover {
827
- opacity: .6
828
- }
829
- .rickshaw_legend .action {
830
- margin-right: .2em;
831
- opacity: .5;
832
- cursor: pointer;
833
- }
834
- .rickshaw_legend .line.disabled {
835
- opacity: .4
836
- }
837
- .rickshaw_legend ul {
838
- list-style-type: none;
839
- margin: 0;
840
- padding: 0;
841
- margin: 2px;
842
- cursor: pointer
843
- }
844
- .rickshaw_legend li {
845
- padding: 0 0 0 2px;
846
- min-width: 80px;
847
- white-space: nowrap
848
- }
849
- .rickshaw_legend li:hover {
850
- background: rgba(255, 255, 255, .08);
851
- border-radius: 3px
852
- }
853
- .rickshaw_legend li:active {
854
- background: rgba(255, 255, 255, .2);
855
- border-radius: 3px
856
- }
857
-
858
617
  .code-wrap {
859
618
  white-space: normal;
860
619
  }
@@ -882,37 +641,30 @@ div.interval-slider input {
882
641
  }
883
642
  }
884
643
 
885
- .redis-url, .redis-namespace {
644
+ .redis-url {
886
645
  overflow: hidden;
887
646
  white-space: nowrap;
888
647
  }
889
648
 
890
649
  @media (min-width: 768px) {
891
650
  .redis-url {
892
- max-width: 200px;
651
+ max-width: 160px;
893
652
  }
894
653
 
895
- .redis-namespace {
896
- max-width: 150px;
654
+ .navbar-fixed-bottom .nav {
655
+ margin-left: -15px;
656
+ margin-right: -15px;
897
657
  }
898
658
  }
899
659
 
900
660
  @media (min-width: 992px) {
901
661
  .redis-url {
902
- max-width: 390px;
903
- }
904
-
905
- .redis-namespace {
906
- max-width: 300px;
662
+ max-width: 380px;
907
663
  }
908
664
  }
909
665
  @media (min-width: 1200px) {
910
666
  .redis-url {
911
- max-width: 480px;
912
- }
913
-
914
- .redis-namespace {
915
- max-width: 350px;
667
+ max-width: 580px;
916
668
  }
917
669
  }
918
670
 
@@ -946,11 +698,62 @@ div.interval-slider input {
946
698
  }
947
699
 
948
700
  .info-circle {
949
- color: #ccc;
950
- background-color: #000;
701
+ color: #333;
702
+ background-color: #ccc;
951
703
  border-radius: 50%;
952
704
  text-align: center;
953
705
  vertical-align: middle;
954
706
  padding: 3px 7px;
955
707
  margin-left: 5px;
956
708
  }
709
+
710
+ .metrics-swatch-wrapper {
711
+ display: flex;
712
+ align-items: center;
713
+ gap: 6px;
714
+ }
715
+
716
+ .metrics-swatch[type=checkbox] {
717
+ display: inline-block;
718
+ width: 16px;
719
+ height: 16px;
720
+ margin: 0;
721
+ border-radius: 2px;
722
+ appearance: none;
723
+ -webkit-appearance: none;
724
+ -moz-appearance: none;
725
+ border: 1px solid #bbb;
726
+ color: white;
727
+ background-color: currentColor;
728
+ }
729
+
730
+ /* We need to add the checkmark since we've taken over the appearance */
731
+ .metrics-swatch[type=checkbox]:checked {
732
+ border-color: currentColor;
733
+ 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");
734
+ background-size: 100% 100%;
735
+ background-position: center;
736
+ background-repeat: no-repeat;
737
+ }
738
+
739
+ .metrics-swatch[type=checkbox]:focus {
740
+ outline: 1px solid #888;
741
+ outline-offset: 2px;
742
+ }
743
+
744
+ canvas {
745
+ margin: 20px 0 30px;
746
+ }
747
+
748
+ #locale-select {
749
+ float: left;
750
+ margin: 8px 15px;
751
+ }
752
+
753
+ @media (max-width: 767px) {
754
+ #locale-select {
755
+ float: none;
756
+ width: auto;
757
+ margin: 15px auto;
758
+ }
759
+ }
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
- TextDirection: 'rtl'
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
- RetryAll: إعادة المحاولة للكل
44
- KillAll: إبطال الكل
45
- NoRetriesFound: لاتوجد أي إعادة محاولة
20
+ Enqueued: في الرتل
46
21
  Error: خطأ
22
+ ErrorBacktrace: تتبع الخطأ
47
23
  ErrorClass: نوع الخطأ
48
24
  ErrorMessage: رسالة الخطأ
49
- ErrorBacktrace: تتبع الخطأ
25
+ Extras: إضافات
26
+ Failed: فشل
27
+ Failures: فشل
50
28
  GoBack: إلى الخلف
51
- NoScheduledFound: لايوجد وظائف مجدولة
52
- When: متى
53
- ScheduledJobs: وظائف مجدولة
54
- idle: خامل
55
- active: نشيط
56
- Version: إصدار
57
- Connections: اتصالات
29
+ History: تاريخ
30
+ Job: وظيفة
31
+ Jobs: وظائف
32
+ Kill: إبطال
33
+ KillAll: إبطال الكل
34
+ LastRetry: إعادة المحاولة الأخيرة
35
+ Latency: زمن الانتظار
36
+ LivePoll: استعلام مباشر
58
37
  MemoryUsage: استخدام الذاكرة
59
- PeakMemoryUsage: ذروة استخدام الذاكرة
60
- Uptime: زمن العمل
61
- OneWeek: أسبوع
62
- OneMonth: شهر
63
- ThreeMonths: ثلاثة أشهر
64
- SixMonths: ستة أشهر
65
- Failures: فشل
66
- DeadJobs: وظائف ميتة
38
+ Name: الاسم
39
+ Namespace: مساحة الاسم
40
+ NextRetry: إعادة المحاولة القادمة
67
41
  NoDeadJobsFound: لاتوجد وظائف ميتة
68
- Dead: ميتة
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
- Name: الاسم
72
- Thread: نيسب
73
- Threads: نياسب
74
- Jobs: وظائف
75
- Paused: موقفة مؤقتاً
76
- Stop: إيقاف
56
+ Queue: رتل
57
+ Queues: أرتال
77
58
  Quiet: هدوء
78
- StopAll: إيقاف الكل
79
59
  QuietAll: هدوء الكل
80
- PollingInterval: الفاصل الزمني بين الاستعلامات
81
- Plugins: الإضافات
82
- NotYetEnqueued: لم تدخل الرتل بعد
83
- CreatedAt: أنشئت في
84
- BackToApp: العودة إلى التطبيق
85
- Latency: زمن الانتظار
86
- Pause: إيقاف مؤقت
87
- Unpause: متابعة
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: خامل