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.
- checksums.yaml +4 -4
- data/Changes.md +225 -0
- data/README.md +34 -14
- data/bin/kiq +17 -0
- data/bin/lint-herb +13 -0
- data/bin/sidekiqload +12 -10
- data/bin/webload +69 -0
- data/lib/active_job/queue_adapters/sidekiq_adapter.rb +107 -58
- data/lib/generators/sidekiq/job_generator.rb +15 -3
- data/lib/generators/sidekiq/templates/job.rb.erb +1 -1
- data/lib/sidekiq/api.rb +310 -83
- data/lib/sidekiq/capsule.rb +10 -7
- data/lib/sidekiq/cli.rb +31 -24
- data/lib/sidekiq/client.rb +36 -18
- data/lib/sidekiq/component.rb +45 -3
- data/lib/sidekiq/config.rb +35 -30
- data/lib/sidekiq/embedded.rb +2 -1
- data/lib/sidekiq/fetch.rb +1 -0
- data/lib/sidekiq/iterable_job.rb +1 -0
- data/lib/sidekiq/job/iterable.rb +46 -18
- data/lib/sidekiq/job.rb +18 -3
- data/lib/sidekiq/job_logger.rb +8 -6
- data/lib/sidekiq/job_retry.rb +45 -18
- data/lib/sidekiq/job_util.rb +5 -1
- data/lib/sidekiq/launcher.rb +22 -12
- data/lib/sidekiq/loader.rb +57 -0
- data/lib/sidekiq/logger.rb +25 -69
- data/lib/sidekiq/manager.rb +2 -2
- data/lib/sidekiq/metrics/query.rb +77 -46
- data/lib/sidekiq/metrics/shared.rb +8 -5
- data/lib/sidekiq/metrics/tracking.rb +12 -7
- data/lib/sidekiq/middleware/current_attributes.rb +11 -19
- data/lib/sidekiq/middleware/i18n.rb +2 -0
- data/lib/sidekiq/monitor.rb +4 -8
- data/lib/sidekiq/paginator.rb +18 -2
- data/lib/sidekiq/processor.rb +26 -18
- data/lib/sidekiq/profiler.rb +73 -0
- data/lib/sidekiq/rails.rb +46 -67
- data/lib/sidekiq/redis_client_adapter.rb +6 -3
- data/lib/sidekiq/redis_connection.rb +16 -5
- data/lib/sidekiq/ring_buffer.rb +1 -0
- data/lib/sidekiq/scheduled.rb +6 -7
- data/lib/sidekiq/test_api.rb +331 -0
- data/lib/sidekiq/testing/inline.rb +2 -30
- data/lib/sidekiq/testing.rb +2 -333
- data/lib/sidekiq/transaction_aware_client.rb +13 -5
- data/lib/sidekiq/tui/controls.rb +53 -0
- data/lib/sidekiq/tui/filtering.rb +53 -0
- data/lib/sidekiq/tui/tabs/base_tab.rb +230 -0
- data/lib/sidekiq/tui/tabs/busy.rb +104 -0
- data/lib/sidekiq/tui/tabs/dead.rb +14 -0
- data/lib/sidekiq/tui/tabs/home.rb +115 -0
- data/lib/sidekiq/tui/tabs/metrics.rb +114 -0
- data/lib/sidekiq/tui/tabs/queues.rb +83 -0
- data/lib/sidekiq/tui/tabs/retries.rb +14 -0
- data/lib/sidekiq/tui/tabs/scheduled.rb +14 -0
- data/lib/sidekiq/tui/tabs/set_tab.rb +91 -0
- data/lib/sidekiq/tui/tabs.rb +15 -0
- data/lib/sidekiq/tui.rb +390 -0
- data/lib/sidekiq/version.rb +2 -2
- data/lib/sidekiq/web/action.rb +146 -83
- data/lib/sidekiq/web/application.rb +372 -328
- data/lib/sidekiq/web/config.rb +117 -0
- data/lib/sidekiq/web/helpers.rb +102 -44
- data/lib/sidekiq/web/router.rb +61 -77
- data/lib/sidekiq/web.rb +65 -151
- data/lib/sidekiq.rb +13 -1
- data/sidekiq.gemspec +9 -8
- data/web/assets/images/logo.png +0 -0
- data/web/assets/images/status.png +0 -0
- data/web/assets/javascripts/application.js +43 -27
- data/web/assets/javascripts/base-charts.js +30 -16
- data/web/assets/javascripts/chartjs-adapter-date-fns.min.js +7 -0
- data/web/assets/javascripts/dashboard.js +1 -1
- data/web/assets/javascripts/metrics.js +16 -34
- data/web/assets/stylesheets/style.css +776 -0
- data/web/locales/ar.yml +3 -1
- data/web/locales/cs.yml +2 -0
- data/web/locales/da.yml +2 -0
- data/web/locales/de.yml +2 -0
- data/web/locales/el.yml +2 -0
- data/web/locales/en.yml +8 -0
- data/web/locales/es.yml +25 -2
- data/web/locales/fa.yml +3 -1
- data/web/locales/fr.yml +3 -1
- data/web/locales/gd.yml +13 -1
- data/web/locales/he.yml +3 -1
- data/web/locales/hi.yml +36 -0
- data/web/locales/it.yml +9 -0
- data/web/locales/ja.yml +2 -0
- data/web/locales/ko.yml +2 -0
- data/web/locales/lt.yml +2 -0
- data/web/locales/nb.yml +2 -0
- data/web/locales/nl.yml +2 -0
- data/web/locales/pl.yml +2 -0
- data/web/locales/{pt-br.yml → pt-BR.yml} +3 -1
- data/web/locales/pt.yml +2 -0
- data/web/locales/ru.yml +2 -0
- data/web/locales/sv.yml +2 -0
- data/web/locales/ta.yml +83 -47
- data/web/locales/tr.yml +2 -0
- data/web/locales/uk.yml +7 -5
- data/web/locales/ur.yml +3 -1
- data/web/locales/vi.yml +2 -0
- data/web/locales/{zh-cn.yml → zh-CN.yml} +86 -73
- data/web/locales/{zh-tw.yml → zh-TW.yml} +3 -1
- data/web/views/_footer.html.erb +32 -0
- data/web/views/_job_info.html.erb +115 -0
- data/web/views/_metrics_period_select.html.erb +15 -0
- data/web/views/_nav.html.erb +45 -0
- data/web/views/_paging.html.erb +26 -0
- data/web/views/_poll_link.html.erb +4 -0
- data/web/views/{_summary.erb → _summary.html.erb} +16 -16
- data/web/views/busy.html.erb +155 -0
- data/web/views/dashboard.html.erb +104 -0
- data/web/views/dead.html.erb +38 -0
- data/web/views/filtering.html.erb +6 -0
- data/web/views/layout.html.erb +26 -0
- data/web/views/metrics.html.erb +85 -0
- data/web/views/metrics_for_job.html.erb +58 -0
- data/web/views/morgue.html.erb +69 -0
- data/web/views/profiles.html.erb +43 -0
- data/web/views/queue.html.erb +57 -0
- data/web/views/queues.html.erb +46 -0
- data/web/views/retries.html.erb +77 -0
- data/web/views/retry.html.erb +39 -0
- data/web/views/scheduled.html.erb +64 -0
- data/web/views/{scheduled_job_info.erb → scheduled_job_info.html.erb} +3 -3
- metadata +65 -47
- data/lib/sidekiq/web/csrf_protection.rb +0 -183
- data/web/assets/stylesheets/application-dark.css +0 -147
- data/web/assets/stylesheets/application-rtl.css +0 -163
- data/web/assets/stylesheets/application.css +0 -759
- data/web/assets/stylesheets/bootstrap-rtl.min.css +0 -9
- data/web/assets/stylesheets/bootstrap.css +0 -5
- data/web/views/_footer.erb +0 -34
- data/web/views/_job_info.erb +0 -105
- data/web/views/_metrics_period_select.erb +0 -12
- data/web/views/_nav.erb +0 -52
- data/web/views/_paging.erb +0 -25
- data/web/views/_poll_link.erb +0 -4
- data/web/views/_status.erb +0 -4
- data/web/views/busy.erb +0 -148
- data/web/views/dashboard.erb +0 -108
- data/web/views/dead.erb +0 -34
- data/web/views/filtering.erb +0 -6
- data/web/views/layout.erb +0 -42
- data/web/views/metrics.erb +0 -90
- data/web/views/metrics_for_job.erb +0 -59
- data/web/views/morgue.erb +0 -74
- data/web/views/queue.erb +0 -55
- data/web/views/queues.erb +0 -44
- data/web/views/retries.erb +0 -79
- data/web/views/retry.erb +0 -34
- 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:
|
|
8
|
-
Arguments:
|
|
9
|
-
|
|
8
|
+
AreYouSureDeleteJob: இந்த பணியை நீக்க விரும்புகிறீர்களா?
|
|
9
|
+
AreYouSureDeleteQueue: "%{queue} வரிசையை நீக்க விரும்புகிறீர்களா? இது வரிசையிலுள்ள அனைத்து பணிகளையும் நீக்கிவிடும், எதிர்காலத்தில் மேலும் பணிகளை அனுப்பினால் இது மீண்டும் தோன்றும்."
|
|
10
|
+
Arguments: அளவுருக்கள்
|
|
11
|
+
BackToApp: பயன்பாட்டிற்குத் திரும்பு
|
|
12
|
+
Busy: செயலில்
|
|
10
13
|
Class: வகுப்பு
|
|
11
14
|
Connections: இணைப்புகள்
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
CreatedAt: உருவாக்கப்பட்ட நேரம்
|
|
16
|
+
CurrentMessagesInQueue: <span class='title'>%{queue}</span> இல் உள்ள தற்போதைய பணிகள்
|
|
17
|
+
Dashboard: தகவற்பலகை
|
|
18
|
+
Dead: முடிந்தது
|
|
19
|
+
DeadJobs: முடிந்த பணிகள்
|
|
16
20
|
Delete: நீக்கு
|
|
17
|
-
DeleteAll:
|
|
18
|
-
|
|
21
|
+
DeleteAll: அனைத்தையும் நீக்கு
|
|
22
|
+
Deploy: வரிசைப்படுத்து
|
|
23
|
+
Enqueued: வரிசையிடப்பட்டது
|
|
19
24
|
Error: பிழை
|
|
20
|
-
ErrorBacktrace: பிழை
|
|
25
|
+
ErrorBacktrace: பிழை பின்தடம்
|
|
21
26
|
ErrorClass: பிழை வகுப்பு
|
|
22
27
|
ErrorMessage: பிழை செய்தி
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
28
|
+
ExecutionTime: செயல்படுத்தும் நேரம்
|
|
29
|
+
Extras: கூடுதல்
|
|
30
|
+
Failed: தோல்வியடைந்தது
|
|
31
|
+
Failures: தோல்விகள்
|
|
32
|
+
Failure: தோல்வி
|
|
33
|
+
GoBack: ← பின் செல்
|
|
27
34
|
History: வரலாறு
|
|
28
|
-
Job:
|
|
29
|
-
Jobs:
|
|
30
|
-
Kill:
|
|
31
|
-
|
|
32
|
-
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
43
|
-
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
60
|
-
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
Threads: 线程
|
|
73
|
-
Jobs: 任务
|
|
74
|
-
Paused: 已暂停
|
|
75
|
-
Stop: 强制暂停
|
|
61
|
+
Queue: 队列
|
|
62
|
+
Queues: 队列
|
|
76
63
|
Quiet: 暂停
|
|
77
|
-
StopAll: 全部强制暂停
|
|
78
64
|
QuietAll: 全部暂停
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
-
|
|
94
|
-
|
|
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-
|
|
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>
|