sidekiq 7.0.9 → 7.3.10
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 +263 -0
- data/README.md +5 -5
- data/bin/multi_queue_bench +271 -0
- data/bin/sidekiqload +41 -14
- data/lib/active_job/queue_adapters/sidekiq_adapter.rb +75 -0
- data/lib/generators/sidekiq/job_generator.rb +2 -0
- data/lib/sidekiq/api.rb +170 -52
- data/lib/sidekiq/capsule.rb +8 -3
- data/lib/sidekiq/cli.rb +6 -2
- data/lib/sidekiq/client.rb +58 -22
- data/lib/sidekiq/component.rb +23 -1
- data/lib/sidekiq/config.rb +52 -11
- data/lib/sidekiq/deploy.rb +4 -2
- data/lib/sidekiq/embedded.rb +2 -0
- data/lib/sidekiq/fetch.rb +2 -1
- data/lib/sidekiq/iterable_job.rb +55 -0
- data/lib/sidekiq/job/interrupt_handler.rb +24 -0
- data/lib/sidekiq/job/iterable/active_record_enumerator.rb +53 -0
- data/lib/sidekiq/job/iterable/csv_enumerator.rb +47 -0
- data/lib/sidekiq/job/iterable/enumerators.rb +135 -0
- data/lib/sidekiq/job/iterable.rb +294 -0
- data/lib/sidekiq/job.rb +15 -8
- data/lib/sidekiq/job_logger.rb +7 -6
- data/lib/sidekiq/job_retry.rb +30 -8
- data/lib/sidekiq/job_util.rb +6 -2
- data/lib/sidekiq/launcher.rb +8 -6
- data/lib/sidekiq/logger.rb +1 -1
- data/lib/sidekiq/metrics/query.rb +6 -1
- data/lib/sidekiq/metrics/shared.rb +16 -5
- data/lib/sidekiq/metrics/tracking.rb +20 -8
- data/lib/sidekiq/middleware/current_attributes.rb +88 -16
- data/lib/sidekiq/middleware/i18n.rb +2 -0
- data/lib/sidekiq/middleware/modules.rb +2 -0
- data/lib/sidekiq/monitor.rb +2 -1
- data/lib/sidekiq/paginator.rb +8 -2
- data/lib/sidekiq/processor.rb +44 -33
- data/lib/sidekiq/rails.rb +28 -7
- data/lib/sidekiq/redis_client_adapter.rb +30 -31
- data/lib/sidekiq/redis_connection.rb +49 -9
- data/lib/sidekiq/ring_buffer.rb +3 -0
- data/lib/sidekiq/scheduled.rb +3 -3
- data/lib/sidekiq/systemd.rb +2 -0
- data/lib/sidekiq/testing.rb +32 -13
- data/lib/sidekiq/transaction_aware_client.rb +20 -5
- data/lib/sidekiq/version.rb +5 -1
- data/lib/sidekiq/web/action.rb +29 -7
- data/lib/sidekiq/web/application.rb +64 -25
- data/lib/sidekiq/web/csrf_protection.rb +9 -6
- data/lib/sidekiq/web/helpers.rb +95 -35
- data/lib/sidekiq/web/router.rb +5 -2
- data/lib/sidekiq/web.rb +67 -3
- data/lib/sidekiq.rb +5 -3
- data/sidekiq.gemspec +5 -13
- data/web/assets/javascripts/application.js +27 -0
- data/web/assets/javascripts/dashboard-charts.js +40 -12
- data/web/assets/javascripts/dashboard.js +14 -10
- data/web/assets/javascripts/metrics.js +34 -0
- data/web/assets/stylesheets/application-rtl.css +10 -0
- data/web/assets/stylesheets/application.css +38 -3
- data/web/locales/en.yml +5 -1
- data/web/locales/fr.yml +13 -0
- data/web/locales/gd.yml +0 -1
- data/web/locales/it.yml +32 -1
- data/web/locales/ja.yml +0 -1
- data/web/locales/pt-br.yml +20 -1
- data/web/locales/tr.yml +100 -0
- data/web/locales/uk.yml +24 -1
- data/web/locales/zh-cn.yml +0 -1
- data/web/locales/zh-tw.yml +0 -1
- data/web/views/_footer.erb +12 -1
- data/web/views/_job_info.erb +1 -1
- data/web/views/_metrics_period_select.erb +1 -1
- data/web/views/_summary.erb +7 -7
- data/web/views/busy.erb +7 -7
- data/web/views/dashboard.erb +29 -36
- data/web/views/filtering.erb +6 -0
- data/web/views/layout.erb +6 -6
- data/web/views/metrics.erb +38 -30
- data/web/views/metrics_for_job.erb +30 -39
- data/web/views/morgue.erb +2 -2
- data/web/views/queue.erb +1 -1
- data/web/views/queues.erb +6 -2
- metadata +52 -21
|
@@ -72,6 +72,14 @@ h1, h2, h3 {
|
|
|
72
72
|
line-height: 45px;
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
+
.progress {
|
|
76
|
+
margin-bottom: 0;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.w-50 {
|
|
80
|
+
width: 50%;
|
|
81
|
+
}
|
|
82
|
+
|
|
75
83
|
.header-container, .header-container .page-title-container {
|
|
76
84
|
display: flex;
|
|
77
85
|
justify-content: space-between;
|
|
@@ -370,6 +378,15 @@ img.smallogo {
|
|
|
370
378
|
.stat p {
|
|
371
379
|
font-size: 0.9em;
|
|
372
380
|
}
|
|
381
|
+
|
|
382
|
+
.num {
|
|
383
|
+
font-family: monospace;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
td.num {
|
|
387
|
+
text-align: right;
|
|
388
|
+
}
|
|
389
|
+
|
|
373
390
|
@media (max-width: 767px) {
|
|
374
391
|
.stats-container {
|
|
375
392
|
display: block;
|
|
@@ -631,18 +648,23 @@ div.interval-slider input {
|
|
|
631
648
|
|
|
632
649
|
@media (min-width: 768px) {
|
|
633
650
|
.redis-url {
|
|
634
|
-
max-width:
|
|
651
|
+
max-width: 160px;
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
.navbar-fixed-bottom .nav {
|
|
655
|
+
margin-left: -15px;
|
|
656
|
+
margin-right: -15px;
|
|
635
657
|
}
|
|
636
658
|
}
|
|
637
659
|
|
|
638
660
|
@media (min-width: 992px) {
|
|
639
661
|
.redis-url {
|
|
640
|
-
max-width:
|
|
662
|
+
max-width: 380px;
|
|
641
663
|
}
|
|
642
664
|
}
|
|
643
665
|
@media (min-width: 1200px) {
|
|
644
666
|
.redis-url {
|
|
645
|
-
max-width:
|
|
667
|
+
max-width: 580px;
|
|
646
668
|
}
|
|
647
669
|
}
|
|
648
670
|
|
|
@@ -722,3 +744,16 @@ div.interval-slider input {
|
|
|
722
744
|
canvas {
|
|
723
745
|
margin: 20px 0 30px;
|
|
724
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/en.yml
CHANGED
|
@@ -34,6 +34,8 @@ en:
|
|
|
34
34
|
Jobs: Jobs
|
|
35
35
|
Kill: Kill
|
|
36
36
|
KillAll: Kill All
|
|
37
|
+
Language: Language
|
|
38
|
+
LastDashboardUpdateTemplateLiteral: "Latest poll: Processed: PROCESSED_COUNT. Failed: FAILED_COUNT."
|
|
37
39
|
LastRetry: Last Retry
|
|
38
40
|
Latency: Latency
|
|
39
41
|
LivePoll: Live Poll
|
|
@@ -53,6 +55,7 @@ en:
|
|
|
53
55
|
PeakMemoryUsage: Peak Memory Usage
|
|
54
56
|
Plugins: Plugins
|
|
55
57
|
PollingInterval: Polling interval
|
|
58
|
+
PollingIntervalMilliseconds: Polling interval milliseconds
|
|
56
59
|
Process: Process
|
|
57
60
|
Processed: Processed
|
|
58
61
|
Processes: Processes
|
|
@@ -95,5 +98,6 @@ en:
|
|
|
95
98
|
TotalExecutionTime: Total Execution Time
|
|
96
99
|
AvgExecutionTime: Average Execution Time
|
|
97
100
|
Context: Context
|
|
98
|
-
Bucket: Bucket
|
|
99
101
|
NoJobMetricsFound: No recent job metrics were found
|
|
102
|
+
Filter: Filter
|
|
103
|
+
AnyJobContent: Any job content
|
data/web/locales/fr.yml
CHANGED
|
@@ -17,14 +17,17 @@ fr:
|
|
|
17
17
|
DeadJobs: Tâches mortes
|
|
18
18
|
Delete: Supprimer
|
|
19
19
|
DeleteAll: Tout supprimer
|
|
20
|
+
Deploy: Déploiement
|
|
20
21
|
Enqueued: En attente
|
|
21
22
|
Error: Erreur
|
|
22
23
|
ErrorBacktrace: Backtrace d’erreur
|
|
23
24
|
ErrorClass: Classe d’erreur
|
|
24
25
|
ErrorMessage: Message d’erreur
|
|
26
|
+
ExecutionTime: Temps d'exécution
|
|
25
27
|
Extras: Extras
|
|
26
28
|
Failed: Échouées
|
|
27
29
|
Failures: Echecs
|
|
30
|
+
Failure: Echec
|
|
28
31
|
GoBack: ← Retour
|
|
29
32
|
History: Historique
|
|
30
33
|
Job: Tâche
|
|
@@ -35,6 +38,7 @@ fr:
|
|
|
35
38
|
Latency: Latence
|
|
36
39
|
LivePoll: Temps réel
|
|
37
40
|
MemoryUsage: Mémoire utilisée
|
|
41
|
+
Name: Nom
|
|
38
42
|
Namespace: Namespace
|
|
39
43
|
NextRetry: Prochain essai
|
|
40
44
|
NoDeadJobsFound: Aucune tâche morte n'a été trouvée
|
|
@@ -63,6 +67,7 @@ fr:
|
|
|
63
67
|
RetryNow: Réessayer maintenant
|
|
64
68
|
Scheduled: Planifiées
|
|
65
69
|
ScheduledJobs: Tâches planifiées
|
|
70
|
+
Seconds: Secondes
|
|
66
71
|
ShowAll: Tout montrer
|
|
67
72
|
SixMonths: 6 mois
|
|
68
73
|
Size: Taille
|
|
@@ -71,6 +76,8 @@ fr:
|
|
|
71
76
|
Stop: Arrêter
|
|
72
77
|
StopAll: Tout arrêter
|
|
73
78
|
StopPolling: Arrêt du temps réel
|
|
79
|
+
Success: Succès
|
|
80
|
+
Summary: Résumé
|
|
74
81
|
Thread: Thread
|
|
75
82
|
Threads: Threads
|
|
76
83
|
ThreeMonths: 3 mois
|
|
@@ -83,3 +90,9 @@ fr:
|
|
|
83
90
|
Worker: Travailleur
|
|
84
91
|
active: actif
|
|
85
92
|
idle: inactif
|
|
93
|
+
Metrics: Métriques
|
|
94
|
+
NoDataFound: Aucune donnée disponible
|
|
95
|
+
TotalExecutionTime: Temps d'exécution total
|
|
96
|
+
AvgExecutionTime: Temps d'exécution moyen
|
|
97
|
+
Context: Contexte
|
|
98
|
+
NoJobMetricsFound: Aucune statistique de tâche récente n'a été trouvée
|
data/web/locales/gd.yml
CHANGED
data/web/locales/it.yml
CHANGED
|
@@ -6,44 +6,60 @@ it:
|
|
|
6
6
|
AreYouSureDeleteJob: Sei sicuro di voler cancellare questo lavoro?
|
|
7
7
|
AreYouSureDeleteQueue: Sei sicuro di voler cancellare la coda %{queue}?
|
|
8
8
|
Arguments: Argomenti
|
|
9
|
+
BackToApp: Torna all'App
|
|
9
10
|
Busy: Occupato
|
|
10
11
|
Class: Classe
|
|
11
12
|
Connections: Connessioni
|
|
13
|
+
CreatedAt: Creato il
|
|
12
14
|
CurrentMessagesInQueue: Messaggi in <span class='title'>%{queue}</span>
|
|
13
15
|
Dashboard: Dashboard
|
|
14
16
|
Dead: Arrestato
|
|
15
17
|
DeadJobs: Lavori arrestati
|
|
16
18
|
Delete: Cancella
|
|
17
19
|
DeleteAll: Cancella tutti
|
|
20
|
+
Deploy: Distribuire
|
|
18
21
|
Enqueued: In coda
|
|
19
22
|
Error: Errore
|
|
20
23
|
ErrorBacktrace: Backtrace dell'errore
|
|
21
24
|
ErrorClass: Classe dell'errore
|
|
22
25
|
ErrorMessage: Messaggio di errore
|
|
26
|
+
ExecutionTime: Tempo di esecuzione
|
|
23
27
|
Extras: Extra
|
|
24
28
|
Failed: Fallito
|
|
25
29
|
Failures: Fallimenti
|
|
30
|
+
Failure: Fallimento
|
|
26
31
|
GoBack: ← Indietro
|
|
27
32
|
History: Storia
|
|
28
33
|
Job: Lavoro
|
|
29
34
|
Jobs: Lavori
|
|
30
35
|
Kill: Uccidere
|
|
36
|
+
KillAll: Uccidere tutti
|
|
31
37
|
LastRetry: Ultimo tentativo
|
|
38
|
+
Latency: Latenza
|
|
32
39
|
LivePoll: Live poll
|
|
33
40
|
MemoryUsage: Memoria utilizzata
|
|
41
|
+
Name: Nome
|
|
34
42
|
Namespace: Namespace
|
|
35
43
|
NextRetry: Prossimo tentativo
|
|
36
44
|
NoDeadJobsFound: Non ci sono lavori arrestati
|
|
37
45
|
NoRetriesFound: Non sono stati trovati nuovi tentativi
|
|
38
46
|
NoScheduledFound: Non ci sono lavori pianificati
|
|
47
|
+
NotYetEnqueued: Non ancora in coda
|
|
39
48
|
OneMonth: 1 mese
|
|
40
49
|
OneWeek: 1 settimana
|
|
41
50
|
OriginallyFailed: Primo fallimento
|
|
51
|
+
Pause: Metti in pausa
|
|
52
|
+
Paused: In pausa
|
|
42
53
|
PeakMemoryUsage: Memoria utilizzata (max.)
|
|
54
|
+
Plugins: Plugins
|
|
55
|
+
PollingInterval: Intervallo di polling
|
|
56
|
+
Process: Processo
|
|
43
57
|
Processed: Processato
|
|
44
58
|
Processes: Processi
|
|
45
59
|
Queue: Coda
|
|
46
60
|
Queues: Code
|
|
61
|
+
Quiet: Silenzia
|
|
62
|
+
QuietAll: Silenzia Tutti
|
|
47
63
|
Realtime: Tempo reale
|
|
48
64
|
Retries: Nuovi tentativi
|
|
49
65
|
RetryAll: Riprova tutti
|
|
@@ -51,19 +67,34 @@ it:
|
|
|
51
67
|
RetryNow: Riprova
|
|
52
68
|
Scheduled: Pianificato
|
|
53
69
|
ScheduledJobs: Lavori pianificati
|
|
70
|
+
Seconds: Secondi
|
|
54
71
|
ShowAll: Mostra tutti
|
|
55
72
|
SixMonths: 6 mesi
|
|
56
73
|
Size: Dimensione
|
|
57
74
|
Started: Iniziato
|
|
58
75
|
Status: Stato
|
|
76
|
+
Stop: Ferma
|
|
77
|
+
StopAll: Ferma Tutti
|
|
59
78
|
StopPolling: Ferma il polling
|
|
79
|
+
Success: Successo
|
|
80
|
+
Summary: Riepilogo
|
|
60
81
|
Thread: Thread
|
|
61
|
-
Threads:
|
|
82
|
+
Threads: Threads
|
|
62
83
|
ThreeMonths: 3 mesi
|
|
63
84
|
Time: Ora
|
|
85
|
+
Unpause: Riattiva
|
|
64
86
|
Uptime: Uptime (giorni)
|
|
87
|
+
Utilization: Utilizzo
|
|
65
88
|
Version: Versione
|
|
66
89
|
When: Quando
|
|
67
90
|
Worker: Lavoratore
|
|
68
91
|
active: attivo
|
|
69
92
|
idle: inattivo
|
|
93
|
+
Metrics: Metriche
|
|
94
|
+
NoDataFound: Nessun dato trovato
|
|
95
|
+
TotalExecutionTime: Tempo totale di esecuzione
|
|
96
|
+
AvgExecutionTime: Tempo medio di esecuzione
|
|
97
|
+
Context: Contesto
|
|
98
|
+
NoJobMetricsFound: Metriche recenti di lavoro non trovate
|
|
99
|
+
Filter: Filtro
|
|
100
|
+
AnyJobContent: Qualsiasi contenuto di lavoro
|
data/web/locales/ja.yml
CHANGED
data/web/locales/pt-br.yml
CHANGED
|
@@ -5,10 +5,12 @@
|
|
|
5
5
|
AreYouSureDeleteJob: Deseja deletar esta tarefa?
|
|
6
6
|
AreYouSureDeleteQueue: Deseja deletar a fila %{queue}? Isso irá deletar todas as tarefas desta fila.
|
|
7
7
|
Arguments: Argumentos
|
|
8
|
+
AvgExecutionTime: Tempo médio de execução
|
|
8
9
|
BackToApp: De volta ao aplicativo
|
|
9
10
|
Busy: Ocupados
|
|
10
11
|
Class: Classe
|
|
11
12
|
Connections: Conexões
|
|
13
|
+
Context: Contexto
|
|
12
14
|
CreatedAt: Criado em
|
|
13
15
|
CurrentMessagesInQueue: Mensagens atualmente na <span class='title'>%{queue}</span>
|
|
14
16
|
Dashboard: Painel
|
|
@@ -16,13 +18,16 @@
|
|
|
16
18
|
DeadJobs: Tarefas mortas
|
|
17
19
|
Delete: Apagar
|
|
18
20
|
DeleteAll: Apagar tudo
|
|
21
|
+
Deploy: Deploy
|
|
19
22
|
Enqueued: Na fila
|
|
20
23
|
Error: Erro
|
|
21
24
|
ErrorBacktrace: Rastreamento do erro
|
|
22
25
|
ErrorClass: Classe de erro
|
|
23
26
|
ErrorMessage: Mensagem de erro
|
|
27
|
+
ExecutionTime: Tempo de execução
|
|
24
28
|
Extras: Extras
|
|
25
29
|
Failed: Falhas
|
|
30
|
+
Failure: Falha
|
|
26
31
|
Failures: Falhas
|
|
27
32
|
GoBack: ← Voltar
|
|
28
33
|
History: Histórico
|
|
@@ -34,10 +39,13 @@
|
|
|
34
39
|
Latency: Latência
|
|
35
40
|
LivePoll: Live Poll
|
|
36
41
|
MemoryUsage: Uso de memória
|
|
42
|
+
Metrics: Métricas
|
|
37
43
|
Name: Nome
|
|
38
44
|
Namespace: Namespace
|
|
39
45
|
NextRetry: Próxima Tentativa
|
|
46
|
+
NoDataFound: Nenhum dado encontrado
|
|
40
47
|
NoDeadJobsFound: Nenhuma tarefa morta foi encontrada
|
|
48
|
+
NoJobMetricsFound: Nenhuma métrica de tarefa encontrada
|
|
41
49
|
NoRetriesFound: Nenhuma tentativa encontrada
|
|
42
50
|
NoScheduledFound: Nenhuma tarefa agendada foi encontrada
|
|
43
51
|
NotYetEnqueued: Ainda não enfileirado
|
|
@@ -47,6 +55,7 @@
|
|
|
47
55
|
Pause: Pausar
|
|
48
56
|
Paused: Pausado
|
|
49
57
|
PeakMemoryUsage: Pico de uso de memória
|
|
58
|
+
Uptime: Tempo de atividade
|
|
50
59
|
Plugins: Plug-ins
|
|
51
60
|
PollingInterval: Intervalo de Polling
|
|
52
61
|
Process: Processo
|
|
@@ -63,14 +72,24 @@
|
|
|
63
72
|
RetryNow: Tentar novamente agora
|
|
64
73
|
Scheduled: Agendados
|
|
65
74
|
ScheduledJobs: Tarefas agendadas
|
|
75
|
+
idle: Ocioso
|
|
76
|
+
active: Ativo
|
|
77
|
+
Seconds: Segundos
|
|
66
78
|
ShowAll: Mostrar todos
|
|
67
79
|
SixMonths: 6 meses
|
|
68
80
|
Size: Tamanho
|
|
81
|
+
Started: Iniciado
|
|
69
82
|
Stop: Parar
|
|
70
83
|
StopAll: Parar Todos
|
|
71
84
|
StopPolling: Parar Polling
|
|
85
|
+
Success: Sucesso
|
|
86
|
+
Summary: Resumo
|
|
72
87
|
Thread: Thread
|
|
73
88
|
Threads: Threads
|
|
89
|
+
ThreeMonths: 3 meses
|
|
90
|
+
TotalExecutionTime: Tempo total de execução
|
|
74
91
|
Unpause: Despausar
|
|
75
92
|
Utilization: Utilização
|
|
76
|
-
|
|
93
|
+
Version: Versão
|
|
94
|
+
When: Quando
|
|
95
|
+
Worker: Trabalhador
|
data/web/locales/tr.yml
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# elements like %{queue} are variables and should not be translated
|
|
2
|
+
tr:
|
|
3
|
+
Actions: Eylemler
|
|
4
|
+
AddToQueue: Kuyruğa ekle
|
|
5
|
+
AreYouSure: Emin misiniz?
|
|
6
|
+
AreYouSureDeleteJob: Bu işi silmek istediğinizden emin misiniz?
|
|
7
|
+
AreYouSureDeleteQueue: "%{queue} kuyruğunu silmek istediğinizden emin misiniz?"
|
|
8
|
+
Arguments: Argümanlar
|
|
9
|
+
BackToApp: Uygulamaya geri dön
|
|
10
|
+
Busy: Meşgul
|
|
11
|
+
Class: Sınıf
|
|
12
|
+
Connections: Bağlantılar
|
|
13
|
+
CreatedAt: Oluşturulma Tarihi
|
|
14
|
+
CurrentMessagesInQueue: Şu anki işler <span class='title'>%{queue}</span>
|
|
15
|
+
Dashboard: Gösterge Paneli
|
|
16
|
+
Dead: Ölü
|
|
17
|
+
DeadJobs: Ölü İşler
|
|
18
|
+
Delete: Sil
|
|
19
|
+
DeleteAll: Hepsini Sil
|
|
20
|
+
Deploy: Dağıt
|
|
21
|
+
Enqueued: Kuyruğa Alındı
|
|
22
|
+
Error: Hata
|
|
23
|
+
ErrorBacktrace: Hata Geri İzleme
|
|
24
|
+
ErrorClass: Hata Sınıfı
|
|
25
|
+
ErrorMessage: Hata Mesajı
|
|
26
|
+
ExecutionTime: Yürütme Süresi
|
|
27
|
+
Extras: Ekstralar
|
|
28
|
+
Failed: Başarısız
|
|
29
|
+
Failures: Başarısızlıklar
|
|
30
|
+
Failure: Başarısızlık
|
|
31
|
+
GoBack: ← Geri Dön
|
|
32
|
+
History: Geçmiş
|
|
33
|
+
Job: İş
|
|
34
|
+
Jobs: İşler
|
|
35
|
+
Kill: Sonlandır
|
|
36
|
+
KillAll: Hepsini Sonlandır
|
|
37
|
+
LastRetry: Son Yeniden Deneme
|
|
38
|
+
Latency: Gecikme
|
|
39
|
+
LivePoll: Canlı Anket
|
|
40
|
+
MemoryUsage: Bellek Kullanımı
|
|
41
|
+
Name: İsim
|
|
42
|
+
Namespace: Ad Alanı
|
|
43
|
+
NextRetry: Bir Sonraki Yeniden Deneme
|
|
44
|
+
NoDeadJobsFound: Ölü iş bulunamadı
|
|
45
|
+
NoRetriesFound: Yeniden deneme bulunamadı
|
|
46
|
+
NoScheduledFound: Zamanlanmış iş bulunamadı
|
|
47
|
+
NotYetEnqueued: Henüz kuyruğa alınmadı
|
|
48
|
+
OneMonth: 1 ay
|
|
49
|
+
OneWeek: 1 hafta
|
|
50
|
+
OriginallyFailed: İlk Başarısızlık
|
|
51
|
+
Pause: Duraklat
|
|
52
|
+
Paused: Duraklatıldı
|
|
53
|
+
PeakMemoryUsage: Maksimum Bellek Kullanımı
|
|
54
|
+
Plugins: Eklentiler
|
|
55
|
+
PollingInterval: Anket Aralığı
|
|
56
|
+
Process: Süreç
|
|
57
|
+
Processed: İşlendi
|
|
58
|
+
Processes: Süreçler
|
|
59
|
+
Queue: Kuyruk
|
|
60
|
+
Queues: Kuyruklar
|
|
61
|
+
Quiet: Sessiz
|
|
62
|
+
QuietAll: Hepsini Sessiz Yap
|
|
63
|
+
Realtime: Gerçek Zamanlı
|
|
64
|
+
Retries: Yeniden Denemeler
|
|
65
|
+
RetryAll: Hepsini Yeniden Dene
|
|
66
|
+
RetryCount: Yeniden Deneme Sayısı
|
|
67
|
+
RetryNow: Şimdi Yeniden Dene
|
|
68
|
+
Scheduled: Zamanlanmış
|
|
69
|
+
ScheduledJobs: Zamanlanmış İşler
|
|
70
|
+
Seconds: Saniye
|
|
71
|
+
ShowAll: Hepsini Göster
|
|
72
|
+
SixMonths: 6 ay
|
|
73
|
+
Size: Boyut
|
|
74
|
+
Started: Başlatıldı
|
|
75
|
+
Status: Durum
|
|
76
|
+
Stop: Durdur
|
|
77
|
+
StopAll: Hepsini Durdur
|
|
78
|
+
StopPolling: Anketi Durdur
|
|
79
|
+
Success: Başarı
|
|
80
|
+
Summary: Özet
|
|
81
|
+
Thread: İplik
|
|
82
|
+
Threads: İplikler
|
|
83
|
+
ThreeMonths: 3 ay
|
|
84
|
+
Time: Zaman
|
|
85
|
+
Unpause: Duraklatmayı Kaldır
|
|
86
|
+
Uptime: Çalışma Süresi (gün)
|
|
87
|
+
Utilization: Kullanım
|
|
88
|
+
Version: Sürüm
|
|
89
|
+
When: Ne Zaman
|
|
90
|
+
Worker: İşçi
|
|
91
|
+
active: aktif
|
|
92
|
+
idle: boşta
|
|
93
|
+
Metrics: Metrikler
|
|
94
|
+
NoDataFound: Veri bulunamadı
|
|
95
|
+
TotalExecutionTime: Toplam Yürütme Süresi
|
|
96
|
+
AvgExecutionTime: Ortalama Yürütme Süresi
|
|
97
|
+
Context: Bağlam
|
|
98
|
+
NoJobMetricsFound: Son iş metrikleri bulunamadı
|
|
99
|
+
Filter: Filtre
|
|
100
|
+
AnyJobContent: Herhangi bir iş içeriği
|
data/web/locales/uk.yml
CHANGED
|
@@ -6,31 +6,39 @@ uk:
|
|
|
6
6
|
AreYouSureDeleteJob: Ви впевнені у тому, що хочете видалити задачу?
|
|
7
7
|
AreYouSureDeleteQueue: Ви впевнені у тому, що хочете видалити чергу %{queue}?
|
|
8
8
|
Arguments: Аргументи
|
|
9
|
+
BackToApp: Назад
|
|
9
10
|
Busy: Зайнятих
|
|
10
11
|
Class: Клас
|
|
11
12
|
Connections: З'єднань
|
|
13
|
+
CreatedAt: Створено
|
|
12
14
|
CurrentMessagesInQueue: Поточні задачі у черзі <span class='title'>%{queue}</span>
|
|
13
15
|
Dashboard: Панель керування
|
|
14
16
|
Dead: Вбитих
|
|
15
17
|
DeadJobs: Вбиті задачі
|
|
16
18
|
Delete: Видалити
|
|
17
19
|
DeleteAll: Видалити усі
|
|
20
|
+
Deploy: Деплой
|
|
18
21
|
Enqueued: У черзі
|
|
19
22
|
Error: Помилка
|
|
20
23
|
ErrorBacktrace: Трасування помилки
|
|
21
24
|
ErrorClass: Клас помилки
|
|
22
25
|
ErrorMessage: Повідомлення про помилку
|
|
26
|
+
ExecutionTime: Час виконання
|
|
23
27
|
Extras: Додатково
|
|
24
28
|
Failed: Невдалих
|
|
25
29
|
Failures: Невдачі
|
|
30
|
+
Failure: Невдача
|
|
26
31
|
GoBack: ← Назад
|
|
27
32
|
History: Історія
|
|
28
33
|
Job: Задача
|
|
29
34
|
Jobs: Задачі
|
|
30
|
-
Kill:
|
|
35
|
+
Kill: Вбити
|
|
36
|
+
KillAll: Вбити все
|
|
31
37
|
LastRetry: Остання спроба
|
|
38
|
+
Latency: Затримка
|
|
32
39
|
LivePoll: Постійне опитування
|
|
33
40
|
MemoryUsage: Використання пам'яті
|
|
41
|
+
Name: Назва
|
|
34
42
|
Namespace: Простір імен
|
|
35
43
|
NextRetry: Наступна спроба
|
|
36
44
|
NoDeadJobsFound: Вбитих задач не знайдено
|
|
@@ -40,10 +48,12 @@ uk:
|
|
|
40
48
|
OneMonth: 1 місяць
|
|
41
49
|
OneWeek: 1 тиждень
|
|
42
50
|
OriginallyFailed: Перша невдала спроба
|
|
51
|
+
Pause: Призупинити
|
|
43
52
|
Paused: Призупинено
|
|
44
53
|
PeakMemoryUsage: Максимальне використання пам'яті
|
|
45
54
|
Plugins: Плагіни
|
|
46
55
|
PollingInterval: Інтервал опитування
|
|
56
|
+
Process: Процес
|
|
47
57
|
Processed: Опрацьовано
|
|
48
58
|
Processes: Процеси
|
|
49
59
|
Queue: Черга
|
|
@@ -57,6 +67,7 @@ uk:
|
|
|
57
67
|
RetryNow: Повторити зараз
|
|
58
68
|
Scheduled: Заплановано
|
|
59
69
|
ScheduledJobs: Заплановані задачі
|
|
70
|
+
Seconds: Секунди
|
|
60
71
|
ShowAll: Відобразити усі
|
|
61
72
|
SixMonths: 6 місяців
|
|
62
73
|
Size: Розмір
|
|
@@ -65,13 +76,25 @@ uk:
|
|
|
65
76
|
Stop: Зупинити
|
|
66
77
|
StopAll: Зупинити усі
|
|
67
78
|
StopPolling: Зупинити опитування
|
|
79
|
+
Success: Успіх
|
|
80
|
+
Summary: Підсумок
|
|
68
81
|
Thread: Потік
|
|
69
82
|
Threads: Потоки
|
|
70
83
|
ThreeMonths: 3 місяці
|
|
71
84
|
Time: Час
|
|
85
|
+
Unpause: Відновити
|
|
72
86
|
Uptime: Днів безперебійної роботи
|
|
87
|
+
Utilization: Утилізація
|
|
73
88
|
Version: Версія
|
|
74
89
|
When: Коли
|
|
75
90
|
Worker: Обробник
|
|
76
91
|
active: активний
|
|
77
92
|
idle: незайнятий
|
|
93
|
+
Metrics: Метрики
|
|
94
|
+
NoDataFound: Даних не знайдено
|
|
95
|
+
TotalExecutionTime: Загальний час виконання
|
|
96
|
+
AvgExecutionTime: Середній час виконання
|
|
97
|
+
Context: Контекст
|
|
98
|
+
NoJobMetricsFound: Недавніх метрик задачі не знайдено
|
|
99
|
+
Filter: Фільтр
|
|
100
|
+
AnyJobContent: Будь-який атрибут задачі
|
data/web/locales/zh-cn.yml
CHANGED
data/web/locales/zh-tw.yml
CHANGED
data/web/views/_footer.erb
CHANGED
|
@@ -15,7 +15,18 @@
|
|
|
15
15
|
<p class="navbar-text"><a rel=help href="https://github.com/sidekiq/sidekiq/wiki">docs</a></p>
|
|
16
16
|
</li>
|
|
17
17
|
<li>
|
|
18
|
-
<
|
|
18
|
+
<form id="locale-form" class="form-inline" action="<%= root_path %>change_locale" method="post">
|
|
19
|
+
<%= csrf_tag %>
|
|
20
|
+
<select id="locale-select" class="form-control" aria-label="<%= t("Language") %>" name="locale">
|
|
21
|
+
<% available_locales.each do |locale_option| %>
|
|
22
|
+
<% if locale_option == locale %>
|
|
23
|
+
<option selected value="<%= locale_option %>"><%= locale_option %></option>
|
|
24
|
+
<% else %>
|
|
25
|
+
<option value="<%= locale_option %>"><%= locale_option %></option>
|
|
26
|
+
<% end %>
|
|
27
|
+
<% end %>
|
|
28
|
+
</select>
|
|
29
|
+
</form>
|
|
19
30
|
</li>
|
|
20
31
|
</ul>
|
|
21
32
|
</div>
|
data/web/views/_job_info.erb
CHANGED
data/web/views/_summary.erb
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
<ul class="list-unstyled summary row">
|
|
2
2
|
<li class="processed col-sm-1">
|
|
3
|
-
<span id="txtProcessed" class="count"><%=
|
|
3
|
+
<span id="txtProcessed" class="count" data-nwp><%= stats.processed %></span>
|
|
4
4
|
<span class="desc"><%= t('Processed') %></span>
|
|
5
5
|
</li>
|
|
6
6
|
<li class="failed col-sm-1">
|
|
7
|
-
<span id="txtFailed" class="count"><%=
|
|
7
|
+
<span id="txtFailed" class="count" data-nwp><%= stats.failed %></span>
|
|
8
8
|
<span class="desc"><%= t('Failed') %></span>
|
|
9
9
|
</li>
|
|
10
10
|
<li class="busy col-sm-1">
|
|
11
11
|
<a href="<%= root_path %>busy">
|
|
12
|
-
<span id="txtBusy" class="count"><%=
|
|
12
|
+
<span id="txtBusy" class="count" data-nwp><%= workset.size %></span>
|
|
13
13
|
<span class="desc"><%= t('Busy') %></span>
|
|
14
14
|
</a>
|
|
15
15
|
</li>
|
|
16
16
|
<li class="enqueued col-sm-1">
|
|
17
17
|
<a href="<%= root_path %>queues">
|
|
18
|
-
<span id="txtEnqueued" class="count"><%=
|
|
18
|
+
<span id="txtEnqueued" class="count" data-nwp><%= stats.enqueued %></span>
|
|
19
19
|
<span class="desc"><%= t('Enqueued') %></span>
|
|
20
20
|
</a>
|
|
21
21
|
</li>
|
|
22
22
|
<li class="retries col-sm-1">
|
|
23
23
|
<a href="<%= root_path %>retries">
|
|
24
|
-
<span id="txtRetries" class="count"><%=
|
|
24
|
+
<span id="txtRetries" class="count" data-nwp><%= stats.retry_size %></span>
|
|
25
25
|
<span class="desc"><%= t('Retries') %></span>
|
|
26
26
|
</a>
|
|
27
27
|
</li>
|
|
28
28
|
<li class="scheduled col-sm-1">
|
|
29
29
|
<a href="<%= root_path %>scheduled">
|
|
30
|
-
<span id="txtScheduled" class="count"><%=
|
|
30
|
+
<span id="txtScheduled" class="count" data-nwp><%= stats.scheduled_size %></span>
|
|
31
31
|
<span class="desc"><%= t('Scheduled') %></span>
|
|
32
32
|
</a>
|
|
33
33
|
</li>
|
|
34
34
|
<li class="dead col-sm-1">
|
|
35
35
|
<a href="<%= root_path %>morgue">
|
|
36
|
-
<span id="txtDead" class="count"><%=
|
|
36
|
+
<span id="txtDead" class="count" data-nwp><%= stats.dead_size %></span>
|
|
37
37
|
<span class="desc"><%= t('Dead') %></span>
|
|
38
38
|
</a>
|
|
39
39
|
</li>
|
data/web/views/busy.erb
CHANGED
|
@@ -86,9 +86,9 @@
|
|
|
86
86
|
<% end %>
|
|
87
87
|
</td>
|
|
88
88
|
<td><%= relative_time(Time.at(process['started_at'])) %></td>
|
|
89
|
-
<td><%= format_memory(process['rss'].to_i) %></td>
|
|
90
|
-
<td><%= process['concurrency'] %></td>
|
|
91
|
-
<td><%= process['busy'] %></td>
|
|
89
|
+
<td class="num"><%= format_memory(process['rss'].to_i) %></td>
|
|
90
|
+
<td class="num"><%= number_with_delimiter(process['concurrency']) %></td>
|
|
91
|
+
<td class="num"><%= number_with_delimiter(process['busy']) %></td>
|
|
92
92
|
<td>
|
|
93
93
|
<% unless process.embedded? %>
|
|
94
94
|
<form method="POST">
|
|
@@ -125,14 +125,14 @@
|
|
|
125
125
|
<th><%= t('Arguments') %></th>
|
|
126
126
|
<th><%= t('Started') %></th>
|
|
127
127
|
</thead>
|
|
128
|
-
<% @workset.each do |process, thread,
|
|
129
|
-
<% job =
|
|
128
|
+
<% @workset.each do |process, thread, work| %>
|
|
129
|
+
<% job = work.job %>
|
|
130
130
|
<tr>
|
|
131
131
|
<td><%= process %></td>
|
|
132
132
|
<td><%= thread %></td>
|
|
133
133
|
<td><%= job.jid %></td>
|
|
134
134
|
<td>
|
|
135
|
-
<a href="<%= root_path %>queues/<%=
|
|
135
|
+
<a href="<%= root_path %>queues/<%= work.queue %>"><%= work.queue %></a>
|
|
136
136
|
</td>
|
|
137
137
|
<td>
|
|
138
138
|
<%= job.display_class %>
|
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
<td>
|
|
142
142
|
<div class="args"><%= display_args(job.display_args) %></div>
|
|
143
143
|
</td>
|
|
144
|
-
<td><%= relative_time(
|
|
144
|
+
<td><%= relative_time(work.run_at) %></td>
|
|
145
145
|
</tr>
|
|
146
146
|
<% end %>
|
|
147
147
|
</table>
|