sidekiq 7.3.9 → 8.1.7

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.
Files changed (155) hide show
  1. checksums.yaml +4 -4
  2. data/Changes.md +225 -0
  3. data/README.md +34 -14
  4. data/bin/kiq +17 -0
  5. data/bin/lint-herb +13 -0
  6. data/bin/sidekiqload +12 -10
  7. data/bin/webload +69 -0
  8. data/lib/active_job/queue_adapters/sidekiq_adapter.rb +107 -58
  9. data/lib/generators/sidekiq/job_generator.rb +15 -3
  10. data/lib/generators/sidekiq/templates/job.rb.erb +1 -1
  11. data/lib/sidekiq/api.rb +310 -83
  12. data/lib/sidekiq/capsule.rb +10 -7
  13. data/lib/sidekiq/cli.rb +31 -24
  14. data/lib/sidekiq/client.rb +36 -18
  15. data/lib/sidekiq/component.rb +45 -3
  16. data/lib/sidekiq/config.rb +35 -30
  17. data/lib/sidekiq/embedded.rb +2 -1
  18. data/lib/sidekiq/fetch.rb +1 -0
  19. data/lib/sidekiq/iterable_job.rb +1 -0
  20. data/lib/sidekiq/job/iterable.rb +46 -18
  21. data/lib/sidekiq/job.rb +18 -3
  22. data/lib/sidekiq/job_logger.rb +8 -6
  23. data/lib/sidekiq/job_retry.rb +45 -18
  24. data/lib/sidekiq/job_util.rb +5 -1
  25. data/lib/sidekiq/launcher.rb +22 -12
  26. data/lib/sidekiq/loader.rb +57 -0
  27. data/lib/sidekiq/logger.rb +25 -69
  28. data/lib/sidekiq/manager.rb +2 -2
  29. data/lib/sidekiq/metrics/query.rb +77 -46
  30. data/lib/sidekiq/metrics/shared.rb +8 -5
  31. data/lib/sidekiq/metrics/tracking.rb +12 -7
  32. data/lib/sidekiq/middleware/current_attributes.rb +11 -19
  33. data/lib/sidekiq/middleware/i18n.rb +2 -0
  34. data/lib/sidekiq/monitor.rb +4 -8
  35. data/lib/sidekiq/paginator.rb +18 -2
  36. data/lib/sidekiq/processor.rb +26 -18
  37. data/lib/sidekiq/profiler.rb +73 -0
  38. data/lib/sidekiq/rails.rb +46 -67
  39. data/lib/sidekiq/redis_client_adapter.rb +6 -3
  40. data/lib/sidekiq/redis_connection.rb +16 -5
  41. data/lib/sidekiq/ring_buffer.rb +1 -0
  42. data/lib/sidekiq/scheduled.rb +6 -7
  43. data/lib/sidekiq/test_api.rb +331 -0
  44. data/lib/sidekiq/testing/inline.rb +2 -30
  45. data/lib/sidekiq/testing.rb +2 -333
  46. data/lib/sidekiq/transaction_aware_client.rb +13 -5
  47. data/lib/sidekiq/tui/controls.rb +53 -0
  48. data/lib/sidekiq/tui/filtering.rb +53 -0
  49. data/lib/sidekiq/tui/tabs/base_tab.rb +230 -0
  50. data/lib/sidekiq/tui/tabs/busy.rb +104 -0
  51. data/lib/sidekiq/tui/tabs/dead.rb +14 -0
  52. data/lib/sidekiq/tui/tabs/home.rb +115 -0
  53. data/lib/sidekiq/tui/tabs/metrics.rb +114 -0
  54. data/lib/sidekiq/tui/tabs/queues.rb +83 -0
  55. data/lib/sidekiq/tui/tabs/retries.rb +14 -0
  56. data/lib/sidekiq/tui/tabs/scheduled.rb +14 -0
  57. data/lib/sidekiq/tui/tabs/set_tab.rb +91 -0
  58. data/lib/sidekiq/tui/tabs.rb +15 -0
  59. data/lib/sidekiq/tui.rb +390 -0
  60. data/lib/sidekiq/version.rb +2 -2
  61. data/lib/sidekiq/web/action.rb +146 -83
  62. data/lib/sidekiq/web/application.rb +372 -328
  63. data/lib/sidekiq/web/config.rb +117 -0
  64. data/lib/sidekiq/web/helpers.rb +102 -44
  65. data/lib/sidekiq/web/router.rb +61 -77
  66. data/lib/sidekiq/web.rb +65 -151
  67. data/lib/sidekiq.rb +13 -1
  68. data/sidekiq.gemspec +9 -8
  69. data/web/assets/images/logo.png +0 -0
  70. data/web/assets/images/status.png +0 -0
  71. data/web/assets/javascripts/application.js +43 -27
  72. data/web/assets/javascripts/base-charts.js +30 -16
  73. data/web/assets/javascripts/chartjs-adapter-date-fns.min.js +7 -0
  74. data/web/assets/javascripts/dashboard.js +1 -1
  75. data/web/assets/javascripts/metrics.js +16 -34
  76. data/web/assets/stylesheets/style.css +776 -0
  77. data/web/locales/ar.yml +3 -1
  78. data/web/locales/cs.yml +2 -0
  79. data/web/locales/da.yml +2 -0
  80. data/web/locales/de.yml +2 -0
  81. data/web/locales/el.yml +2 -0
  82. data/web/locales/en.yml +8 -0
  83. data/web/locales/es.yml +25 -2
  84. data/web/locales/fa.yml +3 -1
  85. data/web/locales/fr.yml +3 -1
  86. data/web/locales/gd.yml +13 -1
  87. data/web/locales/he.yml +3 -1
  88. data/web/locales/hi.yml +36 -0
  89. data/web/locales/it.yml +9 -0
  90. data/web/locales/ja.yml +2 -0
  91. data/web/locales/ko.yml +2 -0
  92. data/web/locales/lt.yml +2 -0
  93. data/web/locales/nb.yml +2 -0
  94. data/web/locales/nl.yml +2 -0
  95. data/web/locales/pl.yml +2 -0
  96. data/web/locales/{pt-br.yml → pt-BR.yml} +3 -1
  97. data/web/locales/pt.yml +2 -0
  98. data/web/locales/ru.yml +2 -0
  99. data/web/locales/sv.yml +2 -0
  100. data/web/locales/ta.yml +83 -47
  101. data/web/locales/tr.yml +2 -0
  102. data/web/locales/uk.yml +7 -5
  103. data/web/locales/ur.yml +3 -1
  104. data/web/locales/vi.yml +2 -0
  105. data/web/locales/{zh-cn.yml → zh-CN.yml} +86 -73
  106. data/web/locales/{zh-tw.yml → zh-TW.yml} +3 -1
  107. data/web/views/_footer.html.erb +32 -0
  108. data/web/views/_job_info.html.erb +115 -0
  109. data/web/views/_metrics_period_select.html.erb +15 -0
  110. data/web/views/_nav.html.erb +45 -0
  111. data/web/views/_paging.html.erb +26 -0
  112. data/web/views/_poll_link.html.erb +4 -0
  113. data/web/views/{_summary.erb → _summary.html.erb} +16 -16
  114. data/web/views/busy.html.erb +155 -0
  115. data/web/views/dashboard.html.erb +104 -0
  116. data/web/views/dead.html.erb +38 -0
  117. data/web/views/filtering.html.erb +6 -0
  118. data/web/views/layout.html.erb +26 -0
  119. data/web/views/metrics.html.erb +85 -0
  120. data/web/views/metrics_for_job.html.erb +58 -0
  121. data/web/views/morgue.html.erb +69 -0
  122. data/web/views/profiles.html.erb +43 -0
  123. data/web/views/queue.html.erb +57 -0
  124. data/web/views/queues.html.erb +46 -0
  125. data/web/views/retries.html.erb +77 -0
  126. data/web/views/retry.html.erb +39 -0
  127. data/web/views/scheduled.html.erb +64 -0
  128. data/web/views/{scheduled_job_info.erb → scheduled_job_info.html.erb} +3 -3
  129. metadata +65 -47
  130. data/lib/sidekiq/web/csrf_protection.rb +0 -183
  131. data/web/assets/stylesheets/application-dark.css +0 -147
  132. data/web/assets/stylesheets/application-rtl.css +0 -163
  133. data/web/assets/stylesheets/application.css +0 -759
  134. data/web/assets/stylesheets/bootstrap-rtl.min.css +0 -9
  135. data/web/assets/stylesheets/bootstrap.css +0 -5
  136. data/web/views/_footer.erb +0 -34
  137. data/web/views/_job_info.erb +0 -105
  138. data/web/views/_metrics_period_select.erb +0 -12
  139. data/web/views/_nav.erb +0 -52
  140. data/web/views/_paging.erb +0 -25
  141. data/web/views/_poll_link.erb +0 -4
  142. data/web/views/_status.erb +0 -4
  143. data/web/views/busy.erb +0 -148
  144. data/web/views/dashboard.erb +0 -108
  145. data/web/views/dead.erb +0 -34
  146. data/web/views/filtering.erb +0 -6
  147. data/web/views/layout.erb +0 -42
  148. data/web/views/metrics.erb +0 -90
  149. data/web/views/metrics_for_job.erb +0 -59
  150. data/web/views/morgue.erb +0 -74
  151. data/web/views/queue.erb +0 -55
  152. data/web/views/queues.erb +0 -44
  153. data/web/views/retries.erb +0 -79
  154. data/web/views/retry.erb +0 -34
  155. data/web/views/scheduled.erb +0 -56
data/web/locales/ta.yml CHANGED
@@ -1,75 +1,111 @@
1
1
  # elements like %{queue} are variables and should not be translated
2
2
  ta:
3
+ LanguageName: தமிழ்
3
4
  Actions: செயல்கள்
4
5
  AddToQueue: வரிசையில் சேர்
6
+ AddAllToQueue: அனைத்தையும் வரிசையில் சேர்
5
7
  AreYouSure: நீங்கள் உறுதியாக இருக்கிறீர்களா?
6
- AreYouSureDeleteJob: நீ இந்த வேலையை நீக்க வேண்டும் என்று உறுதியாக இருக்கிறீர்களா?
7
- AreYouSureDeleteQueue: நீங்கள் %{queue} வரிசையில் நீக்க வேண்டும் என்பதில் உறுதியாக இருக்கிறீர்களா?
8
- Arguments: வாதங்கள்,
9
- Busy: பணிமிகுதி
8
+ AreYouSureDeleteJob: இந்த பணியை நீக்க விரும்புகிறீர்களா?
9
+ AreYouSureDeleteQueue: "%{queue} வரிசையை நீக்க விரும்புகிறீர்களா? இது வரிசையிலுள்ள அனைத்து பணிகளையும் நீக்கிவிடும், எதிர்காலத்தில் மேலும் பணிகளை அனுப்பினால் இது மீண்டும் தோன்றும்."
10
+ Arguments: அளவுருக்கள்
11
+ BackToApp: பயன்பாட்டிற்குத் திரும்பு
12
+ Busy: செயலில்
10
13
  Class: வகுப்பு
11
14
  Connections: இணைப்புகள்
12
- CurrentMessagesInQueue: தற்போதைய வேலைகள் <span class='title'>%{queue}</span>
13
- Dashboard: டாஷ்போர்டு
14
- Dead: இறந்துபோன
15
- DeadJobs: டெட் வேலைகள்
15
+ CreatedAt: உருவாக்கப்பட்ட நேரம்
16
+ CurrentMessagesInQueue: <span class='title'>%{queue}</span> இல் உள்ள தற்போதைய பணிகள்
17
+ Dashboard: தகவற்பலகை
18
+ Dead: முடிந்தது
19
+ DeadJobs: முடிந்த பணிகள்
16
20
  Delete: நீக்கு
17
- DeleteAll: அனைத்து நீக்கு
18
- Enqueued: வரிசைப்படுத்தப்பட்டவை
21
+ DeleteAll: அனைத்தையும் நீக்கு
22
+ Deploy: வரிசைப்படுத்து
23
+ Enqueued: வரிசையிடப்பட்டது
19
24
  Error: பிழை
20
- ErrorBacktrace: பிழை பின்தேடுலை
25
+ ErrorBacktrace: பிழை பின்தடம்
21
26
  ErrorClass: பிழை வகுப்பு
22
27
  ErrorMessage: பிழை செய்தி
23
- Extras: உபரி
24
- Failed: தோல்வி
25
- Failures: தோல்விகள்
26
- GoBack: பின்புறம்
28
+ ExecutionTime: செயல்படுத்தும் நேரம்
29
+ Extras: கூடுதல்
30
+ Failed: தோல்வியடைந்தது
31
+ Failures: தோல்விகள்
32
+ Failure: தோல்வி
33
+ GoBack: ← பின் செல்
27
34
  History: வரலாறு
28
- Job: வேலை
29
- Jobs: வேலை வாய்ப்புகள்
30
- Kill: கொல்
31
- LastRetry: கடைசியாக, மீண்டும் முயற்சிக்கவும்
32
- LivePoll: நேரடி கணிப்பு
35
+ Job: பணி
36
+ Jobs: பணிகள்
37
+ Kill: நிறுத்து
38
+ KillAll: அனைத்தையும் நிறுத்து
39
+ Language: மொழி
40
+ LastDashboardUpdateTemplateLiteral: "கடைசி சோதனை: செயலாக்கப்பட்டவை: PROCESSED_COUNT. தோல்வியடைந்தவை: FAILED_COUNT."
41
+ LastRetry: கடைசி மறுமுயற்சி
42
+ Latency: தாமதம்
43
+ LivePoll: நேரடி சோதனை
33
44
  MemoryUsage: நினைவக பயன்பாடு
45
+ Name: பெயர்
34
46
  Namespace: பெயர்வெளி
35
- NextRetry: அடுத்த, மீண்டும் முயற்சிக்கவும்
36
- NoDeadJobsFound: இறந்த வேலை எதுவும் இல்லை
37
- NoRetriesFound: இல்லை மீண்டும் காணப்படவில்லை
38
- NoScheduledFound: திட்டமிட்ட வேலைகள் காணப்படவில்லை
47
+ NextRetry: அடுத்த மறுமுயற்சி
48
+ NoDeadJobsFound: முடிந்த பணிகள் எதுவும் கிடைக்கவில்லை
49
+ NoRetriesFound: மறுமுயற்சிகள் எதுவும் கிடைக்கவில்லை
50
+ NoScheduledFound: திட்டமிடப்பட்ட பணிகள் எதுவும் கிடைக்கவில்லை
51
+ NotYetEnqueued: இன்னும் வரிசையிடப்படவில்லை
39
52
  OneMonth: 1 மாதம்
40
53
  OneWeek: 1 வாரம்
41
- OriginallyFailed: முதலில் தோல்வி
42
- Paused: தற்காலிக பணிநிறுத்தம்
43
- PeakMemoryUsage: உச்ச நினைவக பயன்பாடு
44
- PollingInterval: வாக்குப்பதிவு இடைவெளி
45
- Processed: நிறையுற்றது
54
+ OriginallyFailed: முதலில் தோல்வியடைந்தது
55
+ Pause: இடைநிறுத்து
56
+ Paused: இடைநிறுத்தப்பட்டது
57
+ PeakMemoryUsage: அதிகபட்ச நினைவக பயன்பாடு
58
+ Plugins: செருகுநிரல்கள்
59
+ PollingInterval: சோதனை இடைவெளி
60
+ PollingIntervalMilliseconds: சோதனை இடைவெளி மில்லிவினாடிகள்
61
+ Process: செயல்முறை
62
+ Processed: செயலாக்கப்பட்டது
46
63
  Processes: செயல்முறைகள்
47
64
  Queue: வரிசை
48
- Queues: வரிசை
49
- Quiet: அமைதியான
50
- QuietAll: அமைதியான அனைத்து
51
- Realtime: நேரலை
52
- Retries: மீண்டும் முயற்சிக்க,
53
- RetryAll: அனைத்து, மீண்டும் முயற்சிக்கவும்
54
- RetryCount: கணிப்பீடு, மீண்டும் முயற்சிக்கவும்
55
- RetryNow: இப்போது மீண்டும் முயற்சி செய்க
56
- Scheduled: திட்டமிடப்பட்ட
57
- ScheduledJobs: திட்டமிட்ட வேலைகள்
58
- ShowAll: அனைத்து காட்டு
65
+ Queues: வரிசைகள்
66
+ Quiet: அமைதி
67
+ QuietAll: அனைத்தையும் அமைதிப்படுத்து
68
+ Realtime: நிகழ்நேரம்
69
+ Retries: மறுமுயற்சிகள்
70
+ RetryAll: அனைத்தையும் மறுமுயற்சி செய்
71
+ RetryCount: மறுமுயற்சி எண்ணிக்கை
72
+ RetryNow: இப்போது மறுமுயற்சி செய்
73
+ Scheduled: திட்டமிடப்பட்டது
74
+ ScheduledJobs: திட்டமிடப்பட்ட பணிகள்
75
+ Seconds: வினாடிகள்
76
+ ShowAll: அனைத்தையும் காட்டு
59
77
  SixMonths: 6 மாதங்கள்
60
78
  Size: அளவு
61
- Started: தொடங்குதல்
62
- Status: நிலைமை
79
+ Started: தொடங்கப்பட்டது
80
+ Status: நிலை
63
81
  Stop: நிறுத்து
64
- StopAll: நிறுத்து அனைத்து
65
- StopPolling: நிறுத்து வாக்குப்பதிவு
82
+ StopAll: அனைத்தையும் நிறுத்து
83
+ StopPolling: சோதனையை நிறுத்து
84
+ Success: வெற்றி
85
+ Summary: சுருக்கம்
66
86
  Thread: நூல்
67
87
  Threads: நூல்கள்
68
88
  ThreeMonths: 3 மாதங்கள்
69
89
  Time: நேரம்
70
- Uptime: இயக்க நேரம் (நாட்கள்)
90
+ Unpause: இடைநிறுத்தத்தை நீக்கு
91
+ Uptime: இயங்கிய நேரம் (நாட்கள்)
92
+ Utilization: பயன்பாட்டு விகிதம்
71
93
  Version: பதிப்பு
72
- When: எப்பொழுது?
94
+ When: எப்போது
73
95
  Worker: பணியாளர்
74
96
  active: செயலில்
75
- idle: முடங்கு நேரம்
97
+ idle: செயலற்று
98
+ Metrics: அளவீடுகள்
99
+ NoDataFound: தரவு எதுவும் கிடைக்கவில்லை
100
+ TotalExecutionTime: மொத்த செயல்படுத்தும் நேரம்
101
+ AvgExecutionTime: சராசரி செயல்படுத்தும் நேரம்
102
+ Context: சூழல்
103
+ NoJobMetricsFound: சமீபத்திய பணி அளவீடுகள் எதுவும் கிடைக்கவில்லை
104
+ Filter: வடிகட்டி
105
+ AnyJobContent: எந்த பணி உள்ளடக்கமும்
106
+ Profiles: சுயவிவரங்கள்
107
+ Data: தரவு
108
+ View: பார்வை
109
+ Token: டோக்கன்
110
+ ElapsedTime: கடந்த நேரம்
111
+ ClickToLearnMore: மேலும் அறிய கிளிக் செய்யவும்
data/web/locales/tr.yml CHANGED
@@ -1,7 +1,9 @@
1
1
  # elements like %{queue} are variables and should not be translated
2
2
  tr:
3
+ LanguageName: Türkçe
3
4
  Actions: Eylemler
4
5
  AddToQueue: Kuyruğa ekle
6
+ AddAllToQueue: Hepsini kuyruğa ekle
5
7
  AreYouSure: Emin misiniz?
6
8
  AreYouSureDeleteJob: Bu işi silmek istediğinizden emin misiniz?
7
9
  AreYouSureDeleteQueue: "%{queue} kuyruğunu silmek istediğinizden emin misiniz?"
data/web/locales/uk.yml CHANGED
@@ -1,7 +1,9 @@
1
1
  # elements like %{queue} are variables and should not be translated
2
2
  uk:
3
+ LanguageName: Українська
3
4
  Actions: Дії
4
5
  AddToQueue: Додати до черги
6
+ AddAllToQueue: Додати все до черги
5
7
  AreYouSure: Ви впевнені?
6
8
  AreYouSureDeleteJob: Ви впевнені у тому, що хочете видалити задачу?
7
9
  AreYouSureDeleteQueue: Ви впевнені у тому, що хочете видалити чергу %{queue}?
@@ -13,8 +15,8 @@ uk:
13
15
  CreatedAt: Створено
14
16
  CurrentMessagesInQueue: Поточні задачі у черзі <span class='title'>%{queue}</span>
15
17
  Dashboard: Панель керування
16
- Dead: Вбитих
17
- DeadJobs: Вбиті задачі
18
+ Dead: Зупинених
19
+ DeadJobs: Зупинені задачі
18
20
  Delete: Видалити
19
21
  DeleteAll: Видалити усі
20
22
  Deploy: Деплой
@@ -32,8 +34,8 @@ uk:
32
34
  History: Історія
33
35
  Job: Задача
34
36
  Jobs: Задачі
35
- Kill: Вбити
36
- KillAll: Вбити все
37
+ Kill: Зупинити
38
+ KillAll: Зупинити все
37
39
  LastRetry: Остання спроба
38
40
  Latency: Затримка
39
41
  LivePoll: Постійне опитування
@@ -41,7 +43,7 @@ uk:
41
43
  Name: Назва
42
44
  Namespace: Простір імен
43
45
  NextRetry: Наступна спроба
44
- NoDeadJobsFound: Вбитих задач не знайдено
46
+ NoDeadJobsFound: Зупинених задач не знайдено
45
47
  NoRetriesFound: Спроб не знайдено
46
48
  NoScheduledFound: Запланованих задач не знайдено
47
49
  NotYetEnqueued: Ще не в черзі
data/web/locales/ur.yml CHANGED
@@ -1,7 +1,9 @@
1
1
  # elements like %{queue} are variables and should not be translated
2
2
  ur:
3
+ LanguageName: اردو
3
4
  Actions: ﻋﻮاﻣﻞ
4
5
  AddToQueue: ﻗﻄﺎﺭ ميں شامل کريں
6
+ AddAllToQueue: سب کو ﻗﻄﺎﺭ ميں شامل کريں
5
7
  AreYouSure: کيا یقین ؟
6
8
  AreYouSureDeleteJob: کيا آپ یقین جاب حتم کرنا چاھتے ہيں ؟
7
9
  AreYouSureDeleteQueue: کيا آپ یقین قطار حتم کرنا چاھتے ہيں ؟
@@ -67,7 +69,7 @@ ur:
67
69
  Stop: بند کرو
68
70
  StopAll: ﺗﻤﺎﻡ ﺑﻨﺪ کﺭﻭ
69
71
  StopPolling: ﺑﺮاﮦ ﺭاﺳﺖ روکيے
70
- TextDirection: 'rtl'
72
+ TextDirection: rtl
71
73
  Thread: موضوع
72
74
  Threads: موضوع
73
75
  ThreeMonths: تین ماہ
data/web/locales/vi.yml CHANGED
@@ -1,7 +1,9 @@
1
1
  # elements like %{queue} are variables and should not be translated
2
2
  vi:
3
+ LanguageName: Tiếng Việt
3
4
  Actions: Những hành động
4
5
  AddToQueue: Thêm vào hàng đợi
6
+ AddAllToQueue: Thêm tất cả vào hàng đợi
5
7
  AreYouSure: Bạn chắc chứ?
6
8
  AreYouSureDeleteJob: Bạn có chắc là muốn xóa tác vụ này?
7
9
  AreYouSureDeleteQueue: Bạn có chắc là muốn xóa %{queue} này?
@@ -1,94 +1,107 @@
1
1
  # elements like %{queue} are variables and should not be translated
2
- zh-cn: # <---- change this to your locale code
3
- Dashboard: 信息板
4
- Status: 状态
5
- Time: 时间
6
- Namespace: 命名空间
7
- Realtime: 实时
8
- History: 历史记录
2
+ zh-CN: # <---- change this to your locale code
3
+ LanguageName: 中文
4
+ Actions: 操作
5
+ AddToQueue: 添加至队列
6
+ AddAllToQueue: 添加所有至队列
7
+ AreYouSure: 你确定?
8
+ AreYouSureDeleteJob: 你确定要删除这个任务么?
9
+ AreYouSureDeleteQueue: 你确定要删除 %{queue} 队列吗?这将删除当前队列中的所有任务,当新的任务添加到该队列时,它会重新出现。
10
+ Arguments: 参数
11
+ BackToApp: 返回首页
9
12
  Busy: 执行中
10
- Utilization: 利用率
11
- Processed: 已处理
12
- Failed: 已失败
13
- Scheduled: 已计划
14
- Retries: 重试
15
- Enqueued: 已进入队列
16
- Worker: 工人
17
- LivePoll: 实时轮询
18
- StopPolling: 停止轮询
19
- Queue: 队列
20
13
  Class: 类别
21
- Job: 任务
22
- Arguments: 参数
23
- Extras: 额外的
24
- Started: 已开始
25
- ShowAll: 显示全部
26
- CurrentMessagesInQueue: 目前在<span class='title'>%{queue}</span>的任务
14
+ Connections: 连接
15
+ CreatedAt: 创建时间
16
+ CurrentMessagesInQueue: 目前在 <span class='title'>%{queue}</span> 队列中的任务
17
+ Dashboard: 信息板
18
+ Dead: 已停滞
19
+ DeadJobs: 已停滞任务
27
20
  Delete: 删除
28
- AddToQueue: 添加至队列
29
- AreYouSureDeleteJob: 你确定要删除这个任务么?
30
- AreYouSureDeleteQueue: 你确定要删除%{queue}这个队列?
31
- Queues: 队列
32
- Size: 容量
33
- Actions: 动作
34
- NextRetry: 下次重试
35
- RetryCount: 重试次数
36
- RetryNow: 现在重试
37
- Kill: 终止
38
- LastRetry: 上次重试
39
- OriginallyFailed: 首次失败
40
- AreYouSure: 你确定?
41
21
  DeleteAll: 全部删除
42
- RetryAll: 全部重试
43
- KillAll: 全部终止
44
- NoRetriesFound: 没有发现可重试
22
+ Deploy: 部署
23
+ Enqueued: 已进入队列
45
24
  Error: 错误
46
- ErrorClass: 错误类别
47
- ErrorMessage: 错误消息
48
25
  ErrorBacktrace: 错误细节
26
+ ErrorClass: 错误类别
27
+ ErrorMessage: 错误信息
28
+ ExecutionTime: 执行时间
29
+ Extras: 附加信息
30
+ Failed: 失败
31
+ Failures: 失败记录
32
+ Failure: 失败
49
33
  GoBack: ← 返回
50
- NoScheduledFound: 没有发现计划任务
51
- When: 当
52
- ScheduledJobs: 计划任务
53
- idle: 闲置
54
- active: 活动中
55
- Version: 版本
56
- Connections: 连接
34
+ History: 历史记录
35
+ Job: 任务
36
+ Jobs: 任务
37
+ Kill: 终止
38
+ KillAll: 全部终止
39
+ LastRetry: 上次重试
40
+ Latency: 延迟
41
+ LivePoll: 实时轮询
57
42
  MemoryUsage: 内存占用
43
+ Name: 名称
44
+ Namespace: 命名空间
45
+ NextRetry: 下次重试
46
+ NoDeadJobsFound: 没有发现已停滞任务
47
+ NoRetriesFound: 没有发现可重试任务
48
+ NoScheduledFound: 没有发现计划任务
49
+ NotYetEnqueued: 尚未进入队列
50
+ OneMonth: 1个月
51
+ OneWeek: 1周
52
+ OriginallyFailed: 首次失败
53
+ Pause: 暂停
54
+ Paused: 已暂停
58
55
  PeakMemoryUsage: 内存占用峰值
59
- Uptime: 上线时间 (天数)
60
- OneWeek: 一周
61
- OneMonth: 一个月
62
- ThreeMonths: 三个月
63
- SixMonths: 六个月
64
- Failures: 失败
65
- DeadJobs: 已停滞任务
66
- NoDeadJobsFound: 没有发现任何已停滞的任务
67
- Dead: 已停滞
56
+ Plugins: 插件
57
+ PollingInterval: 轮询周期
68
58
  Process: 进程
59
+ Processed: 已处理
69
60
  Processes: 进程
70
- Name: 名称
71
- Thread: 线程
72
- Threads: 线程
73
- Jobs: 任务
74
- Paused: 已暂停
75
- Stop: 强制暂停
61
+ Queue: 队列
62
+ Queues: 队列
76
63
  Quiet: 暂停
77
- StopAll: 全部强制暂停
78
64
  QuietAll: 全部暂停
79
- PollingInterval: 轮询周期
80
- Plugins: 插件
81
- NotYetEnqueued: 尚未进入队列
82
- CreatedAt: 建立时间
83
- BackToApp: 回首頁
84
- Latency: 延迟
85
- Pause: 暂停
65
+ Realtime: 实时
66
+ Retries: 重试
67
+ RetryAll: 全部重试
68
+ RetryCount: 重试次数
69
+ RetryNow: 立即重试
70
+ Scheduled: 已计划
71
+ ScheduledJobs: 计划任务
72
+ Seconds: 秒
73
+ ShowAll: 显示全部
74
+ SixMonths: 6个月
75
+ Size: 大小
76
+ Started: 已启动
77
+ Status: 状态
78
+ Stop: 强制暂停
79
+ StopAll: 全部强制暂停
80
+ StopPolling: 停止轮询
81
+ Success: 成功
82
+ Summary: 概览
83
+ Thread: 线程
84
+ Threads: 线程
85
+ ThreeMonths: 3个月
86
+ Time: 时间
86
87
  Unpause: 取消暂停
88
+ Uptime: 运行时间(天)
89
+ Utilization: 利用率
90
+ Version: 版本
91
+ When: 当
92
+ Worker: 线程
93
+ active: 活动中
94
+ idle: 闲置
87
95
  Metrics: 指标
88
96
  NoDataFound: 无数据
89
97
  TotalExecutionTime: 总执行时间
90
98
  AvgExecutionTime: 平均执行时间
91
99
  Context: 上下文
92
100
  NoJobMetricsFound: 无任务相关指标数据
93
- Success: 成功
94
- Failure: 失败
101
+ Filter: 过滤
102
+ AnyJobContent: 任何任务内容
103
+ Profiles: 性能分析
104
+ Data: 数据
105
+ View: 查看
106
+ Token: 标记
107
+ ElapsedTime: 已用时间
@@ -1,5 +1,6 @@
1
1
  # elements like %{queue} are variables and should not be translated
2
- zh-tw: # <---- change this to your locale code
2
+ zh-TW: # <---- change this to your locale code
3
+ LanguageName: 繁體中文
3
4
  Dashboard: 資訊主頁
4
5
  Status: 狀態
5
6
  Time: 時間
@@ -26,6 +27,7 @@ zh-tw: # <---- change this to your locale code
26
27
  CurrentMessagesInQueue: 目前在<span class='title'>%{queue}</span>的工作
27
28
  Delete: 刪除
28
29
  AddToQueue: 增加至佇列
30
+ AddAllToQueue: 增加所有至佇列
29
31
  AreYouSureDeleteJob: 確定要刪除這個工作嗎?
30
32
  AreYouSureDeleteQueue: 確定要刪除%{queue}佇列?這會刪除佇列裡的所有工作,佇列將會在有新工作時重新出現。
31
33
  Queues: 佇列
@@ -0,0 +1,32 @@
1
+ <footer>
2
+ <div class="container">
3
+ <ul class="nav">
4
+ <li>
5
+ <p><b><%= product_version %></b></p>
6
+ </li>
7
+ <li>
8
+ <p title="<%= redis_url %>"><%= redis_url %></p>
9
+ </li>
10
+ <li>
11
+ <p id="serverUtcTime"><%= server_utc_time %></p>
12
+ </li>
13
+ <li>
14
+ <p><a rel="help" href="https://sidekiq.org/wiki">docs</a></p>
15
+ </li>
16
+ <li>
17
+ <form id="locale-form" action="<%= root_path %>change_locale" method="post">
18
+ <%= csrf_tag %>
19
+ <select id="locale-select" aria-label="<%= t("Language") %>" class="form-control" name="locale">
20
+ <% available_locales.each do |locale_option| %>
21
+ <% if locale_option == locale %>
22
+ <option selected value="<%= locale_option %>"><%= language_name(locale_option) %></option>
23
+ <% else %>
24
+ <option value="<%= locale_option %>"><%= language_name(locale_option) %></option>
25
+ <% end %>
26
+ <% end %>
27
+ </select>
28
+ </form>
29
+ </li>
30
+ </ul>
31
+ </div>
32
+ </footer>
@@ -0,0 +1,115 @@
1
+ <section>
2
+ <header>
3
+ <h1><%= t('Job') %></h1>
4
+ </header>
5
+
6
+ <div class="table_container">
7
+ <table>
8
+ <tbody>
9
+ <tr>
10
+ <th><%= t('Queue') %></th>
11
+ <td>
12
+ <a href="<%= root_path %>queues/<%= CGI.escape(job.queue) %>"><%= h job.queue %></a>
13
+ </td>
14
+ </tr>
15
+ <tr>
16
+ <th><%= t('Job') %></th>
17
+ <td>
18
+ <%= job.display_class %>
19
+ <%= display_tags(job) %>
20
+ </td>
21
+ </tr>
22
+ <tr>
23
+ <th><%= t('Arguments') %></th>
24
+ <td>
25
+ <code class="code-wrap">
26
+ <!-- We don't want to truncate any job arguments when viewing a single job's status page -->
27
+ <div class="args-extended"><%= display_args(job.display_args, nil) %></div>
28
+ </code>
29
+ </td>
30
+ </tr>
31
+ <tr>
32
+ <th>JID</th>
33
+ <td>
34
+ <code><%= job.jid %></code>
35
+ </td>
36
+ </tr>
37
+ <% if (state = job.iterable_state) %>
38
+ <tr>
39
+ <th>Iteration</th>
40
+ <td>
41
+ <code>cursor=<%= h(state.cursor.inspect) %>; exec=<%= state.executions %>; rt=<%= number_with_delimiter(state.runtime, precision: 3) %>s</code>
42
+ </td>
43
+ </tr>
44
+ <% end %>
45
+ <% if job.bid %>
46
+ <tr>
47
+ <th>BID</th>
48
+ <td>
49
+ <a href="<%= root_path %>batches/<%= job.bid %>"><%= job.bid %></a>
50
+ </td>
51
+ </tr>
52
+ <% end %>
53
+ <tr>
54
+ <th><%= t('CreatedAt') %></th>
55
+ <td><%= relative_time(job.created_at) %></td>
56
+ </tr>
57
+ <tr>
58
+ <th><%= t('Enqueued') %></th>
59
+ <td><%= (enqueued_at = job.enqueued_at) ? relative_time(enqueued_at) : t('NotYetEnqueued') %></td>
60
+ </tr>
61
+ <% unless retry_extra_items(job).empty? %>
62
+ <tr>
63
+ <th><%= t('Extras') %></th>
64
+ <td>
65
+ <code>
66
+ <%= retry_extra_items(job).inspect %>
67
+ </code>
68
+ </td>
69
+ </tr>
70
+ <% end %>
71
+ <% if type == :retry %>
72
+ <% if job['retry_count'] && job['retry_count'] > 0 %>
73
+ <tr>
74
+ <th><%= t('RetryCount') %></th>
75
+ <td><%= job['retry_count'] %></td>
76
+ </tr>
77
+ <tr>
78
+ <th><%= t('LastRetry') %></th>
79
+ <td><%= relative_time(job.retried_at) %></td>
80
+ </tr>
81
+ <% else %>
82
+ <tr>
83
+ <th><%= t('OriginallyFailed') %></th>
84
+ <td><%= relative_time(job.failed_at) %></td>
85
+ </tr>
86
+ <% end %>
87
+ <tr>
88
+ <th><%= t('NextRetry') %></th>
89
+ <td><%= relative_time(job.at) %></td>
90
+ </tr>
91
+ <% end %>
92
+ <% if type == :scheduled %>
93
+ <tr>
94
+ <th><%= t('Scheduled') %></th>
95
+ <td><%= relative_time(job.at) %></td>
96
+ </tr>
97
+ <% end %>
98
+ <% if type == :dead %>
99
+ <tr>
100
+ <th><%= t('LastRetry') %></th>
101
+ <td><%= relative_time(job.at) if job['retry_count'] %></td>
102
+ </tr>
103
+ <% end %>
104
+ <% config.custom_job_info_rows&.each do |helper| %>
105
+ <% helper.add_pair(job) do |name, value| %>
106
+ <tr>
107
+ <th><%= name %></th>
108
+ <td><%= value %></td>
109
+ </tr>
110
+ <% end %>
111
+ <% end %>
112
+ </tbody>
113
+ </table>
114
+ </div>
115
+ </section>
@@ -0,0 +1,15 @@
1
+ <div class="filter">
2
+ <form id="metrics-form" class="form-inline" action="<%= path %>" method="get">
3
+ <label for="substr"><%= t('Filter') %></label>
4
+ <input id="class-filter" class="form-control" type="text" name="substr" placeholder="<%= t('Name') %>" value="<%= h url_params("substr") %>" autocomplete="off">
5
+ <select id="period-selector" class="form-control" name="period">
6
+ <% periods.each_key do |code| %>
7
+ <% if code == period %>
8
+ <option selected value="<%= code %>"><%= code %></option>
9
+ <% else %>
10
+ <option value="<%= code %>"><%= code %></option>
11
+ <% end %>
12
+ <% end %>
13
+ </select>
14
+ </form>
15
+ </div>
@@ -0,0 +1,45 @@
1
+ <header>
2
+ <div class="container">
3
+ <div class="navbar-header" data-navbar="static">
4
+ <button type="button" class="btn navbar-toggle" data-toggle="navbar-menu" data-target="#navbar-menu">
5
+ <span class="icon-bar"></span>
6
+ <span class="icon-bar"></span>
7
+ <span class="icon-bar"></span>
8
+ </button>
9
+ <div class="navbar-livereload">
10
+ <%= erb :_poll_link %>
11
+ <% if config.app_url %>
12
+ <a class="btn btn-inverse" href="<%= config.app_url %>"><%= t('BackToApp') %></a>
13
+ <% end %>
14
+ </div>
15
+ <a class="navbar-brand" href="<%= root_path %>">
16
+ <%= Sidekiq::NAME %>
17
+ </a>
18
+ </div>
19
+
20
+ <div class="navbar-collapse" role="navigation" id="navbar-menu">
21
+ <ul class="nav" data-navbar="static">
22
+ <% config.tabs.each do |title, url| %>
23
+ <% if url == '' %>
24
+ <li class="<%= current_path == url ? 'active' : '' %>">
25
+ <a href="<%= root_path %><%= url %>"><%= t(title) %></a>
26
+ </li>
27
+ <% else %>
28
+ <li class="<%= current_path.start_with?(url) ? 'active' : '' %>">
29
+ <a href="<%= root_path %><%= url %>"><%= t(title) %></a>
30
+ </li>
31
+ <% end %>
32
+ <% end %>
33
+
34
+ <li class="navbar-livereload">
35
+ <div class="poll-wrapper">
36
+ <%= erb :_poll_link %>
37
+ <% if config.app_url %>
38
+ <a class="btn btn-inverse" href="<%= config.app_url %>"><%= t('BackToApp') %></a>
39
+ <% end %>
40
+ </div>
41
+ </li>
42
+ </ul>
43
+ </div>
44
+ </div>
45
+ </header>