sidekiq 7.0.0 → 7.3.0
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 +261 -13
- data/README.md +34 -27
- data/bin/multi_queue_bench +271 -0
- data/bin/sidekiqload +204 -109
- data/bin/sidekiqmon +3 -0
- data/lib/sidekiq/api.rb +151 -23
- data/lib/sidekiq/capsule.rb +20 -0
- data/lib/sidekiq/cli.rb +9 -4
- data/lib/sidekiq/client.rb +40 -24
- data/lib/sidekiq/component.rb +3 -1
- data/lib/sidekiq/config.rb +32 -12
- data/lib/sidekiq/deploy.rb +5 -5
- data/lib/sidekiq/embedded.rb +3 -3
- data/lib/sidekiq/fetch.rb +3 -5
- data/lib/sidekiq/iterable_job.rb +53 -0
- data/lib/sidekiq/job/interrupt_handler.rb +22 -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 +231 -0
- data/lib/sidekiq/job.rb +17 -10
- data/lib/sidekiq/job_logger.rb +24 -11
- data/lib/sidekiq/job_retry.rb +34 -11
- data/lib/sidekiq/job_util.rb +51 -15
- data/lib/sidekiq/launcher.rb +38 -22
- data/lib/sidekiq/logger.rb +1 -1
- data/lib/sidekiq/metrics/query.rb +6 -3
- data/lib/sidekiq/metrics/shared.rb +4 -4
- data/lib/sidekiq/metrics/tracking.rb +9 -3
- data/lib/sidekiq/middleware/chain.rb +12 -9
- data/lib/sidekiq/middleware/current_attributes.rb +70 -17
- data/lib/sidekiq/monitor.rb +17 -4
- data/lib/sidekiq/paginator.rb +4 -4
- data/lib/sidekiq/processor.rb +41 -27
- data/lib/sidekiq/rails.rb +18 -8
- data/lib/sidekiq/redis_client_adapter.rb +31 -35
- data/lib/sidekiq/redis_connection.rb +29 -7
- data/lib/sidekiq/scheduled.rb +4 -4
- data/lib/sidekiq/testing.rb +27 -8
- data/lib/sidekiq/transaction_aware_client.rb +7 -0
- data/lib/sidekiq/version.rb +1 -1
- data/lib/sidekiq/web/action.rb +10 -4
- data/lib/sidekiq/web/application.rb +113 -16
- data/lib/sidekiq/web/csrf_protection.rb +9 -6
- data/lib/sidekiq/web/helpers.rb +104 -33
- data/lib/sidekiq/web.rb +63 -2
- data/lib/sidekiq.rb +2 -1
- data/sidekiq.gemspec +8 -29
- data/web/assets/javascripts/application.js +45 -0
- data/web/assets/javascripts/dashboard-charts.js +38 -12
- data/web/assets/javascripts/dashboard.js +8 -10
- data/web/assets/javascripts/metrics.js +64 -2
- data/web/assets/stylesheets/application-dark.css +4 -0
- data/web/assets/stylesheets/application-rtl.css +10 -0
- data/web/assets/stylesheets/application.css +38 -4
- data/web/locales/da.yml +11 -4
- data/web/locales/en.yml +2 -0
- data/web/locales/fr.yml +14 -0
- data/web/locales/gd.yml +99 -0
- data/web/locales/ja.yml +3 -1
- data/web/locales/pt-br.yml +20 -0
- data/web/locales/tr.yml +101 -0
- data/web/locales/zh-cn.yml +20 -19
- data/web/views/_footer.erb +14 -2
- data/web/views/_job_info.erb +18 -2
- data/web/views/_metrics_period_select.erb +12 -0
- data/web/views/_paging.erb +2 -0
- data/web/views/_poll_link.erb +1 -1
- data/web/views/_summary.erb +7 -7
- data/web/views/busy.erb +46 -35
- data/web/views/dashboard.erb +25 -35
- data/web/views/filtering.erb +7 -0
- data/web/views/layout.erb +6 -6
- data/web/views/metrics.erb +42 -31
- data/web/views/metrics_for_job.erb +41 -51
- data/web/views/morgue.erb +5 -9
- data/web/views/queue.erb +10 -14
- data/web/views/queues.erb +9 -3
- data/web/views/retries.erb +5 -9
- data/web/views/scheduled.erb +12 -13
- metadata +37 -32
@@ -4,6 +4,14 @@ class JobMetricsOverviewChart extends BaseChart {
|
|
4
4
|
this.swatches = [];
|
5
5
|
this.visibleKls = options.visibleKls;
|
6
6
|
|
7
|
+
const countBuckets = this.options.labels.length / 60;
|
8
|
+
this.labelBuckets = this.options.labels.reduce((acc, label, index) => {
|
9
|
+
const bucket = Math.floor(index / countBuckets);
|
10
|
+
acc[bucket] = acc[bucket] || [];
|
11
|
+
acc[bucket].push(label);
|
12
|
+
return acc;
|
13
|
+
}, []);
|
14
|
+
|
7
15
|
this.init();
|
8
16
|
}
|
9
17
|
|
@@ -52,7 +60,7 @@ class JobMetricsOverviewChart extends BaseChart {
|
|
52
60
|
|
53
61
|
return {
|
54
62
|
label: kls,
|
55
|
-
data: this.
|
63
|
+
data: this.buildSeries(kls),
|
56
64
|
borderColor: color,
|
57
65
|
backgroundColor: color,
|
58
66
|
borderWidth: 2,
|
@@ -60,6 +68,26 @@ class JobMetricsOverviewChart extends BaseChart {
|
|
60
68
|
};
|
61
69
|
}
|
62
70
|
|
71
|
+
buildSeries(kls) {
|
72
|
+
// `series` is an object that maps labels to counts => { "20:15" => 2, "20:16" => 3, ... }
|
73
|
+
const series = this.options.series[kls];
|
74
|
+
return this.labelBuckets.reduce((acc, labels) => {
|
75
|
+
const bucketValues = labels.map(label => series[label]).filter(v => v);
|
76
|
+
if (bucketValues.length > 0) {
|
77
|
+
// Sum up the values for each bucket that has data.
|
78
|
+
// The new label is the bucket's first label, its start time.
|
79
|
+
acc[labels[0]] = bucketValues.reduce((a, b) => a + b, 0);
|
80
|
+
}
|
81
|
+
return acc;
|
82
|
+
}, {});
|
83
|
+
}
|
84
|
+
|
85
|
+
buildTooltipTitle(items) {
|
86
|
+
const [first, ...rest] = this.labelBuckets.find((labels) => labels[0] === items[0].label);
|
87
|
+
const title = [first, rest[rest.length - 1]].filter(v => v).join(" - ");
|
88
|
+
return `${title} UTC`
|
89
|
+
}
|
90
|
+
|
63
91
|
get chartOptions() {
|
64
92
|
return {
|
65
93
|
...super.chartOptions,
|
@@ -80,7 +108,7 @@ class JobMetricsOverviewChart extends BaseChart {
|
|
80
108
|
tooltip: {
|
81
109
|
...super.chartOptions.plugins.tooltip,
|
82
110
|
callbacks: {
|
83
|
-
title: (items) =>
|
111
|
+
title: (items) => this.buildTooltipTitle(items),
|
84
112
|
label: (item) =>
|
85
113
|
`${item.dataset.label}: ${item.parsed.y.toFixed(1)} ` +
|
86
114
|
`${this.options.units}`,
|
@@ -234,3 +262,37 @@ class HistBubbleChart extends BaseChart {
|
|
234
262
|
};
|
235
263
|
}
|
236
264
|
}
|
265
|
+
|
266
|
+
var ch = document.getElementById("job-metrics-overview-chart");
|
267
|
+
if (ch != null) {
|
268
|
+
var jm = new JobMetricsOverviewChart(ch, JSON.parse(ch.textContent));
|
269
|
+
document.querySelectorAll(".metrics-swatch-wrapper > input[type=checkbox]").forEach((imp) => {
|
270
|
+
jm.registerSwatch(imp.id)
|
271
|
+
});
|
272
|
+
window.jobMetricsChart = jm;
|
273
|
+
}
|
274
|
+
|
275
|
+
var htc = document.getElementById("hist-totals-chart");
|
276
|
+
if (htc != null) {
|
277
|
+
var tc = new HistTotalsChart(htc, JSON.parse(htc.textContent));
|
278
|
+
window.histTotalsChart = tc
|
279
|
+
}
|
280
|
+
|
281
|
+
var hbc = document.getElementById("hist-bubble-chart");
|
282
|
+
if (hbc != null) {
|
283
|
+
var bc = new HistBubbleChart(hbc, JSON.parse(hbc.textContent));
|
284
|
+
window.histBubbleChart = bc
|
285
|
+
}
|
286
|
+
|
287
|
+
var form = document.getElementById("metrics-form")
|
288
|
+
document.querySelectorAll("#period-selector").forEach(node => {
|
289
|
+
node.addEventListener("input", debounce(() => form.submit()))
|
290
|
+
})
|
291
|
+
|
292
|
+
function debounce(func, timeout = 300) {
|
293
|
+
let timer;
|
294
|
+
return (...args) => {
|
295
|
+
clearTimeout(timer);
|
296
|
+
timer = setTimeout(() => { func.apply(this, args); }, timeout);
|
297
|
+
};
|
298
|
+
}
|
@@ -72,7 +72,15 @@ h1, h2, h3 {
|
|
72
72
|
line-height: 45px;
|
73
73
|
}
|
74
74
|
|
75
|
-
.
|
75
|
+
.progress {
|
76
|
+
margin-bottom: 0;
|
77
|
+
}
|
78
|
+
|
79
|
+
.w-50 {
|
80
|
+
width: 50%;
|
81
|
+
}
|
82
|
+
|
83
|
+
.header-container, .header-container .page-title-container {
|
76
84
|
display: flex;
|
77
85
|
justify-content: space-between;
|
78
86
|
align-items: center;
|
@@ -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;
|
@@ -617,8 +634,12 @@ div.interval-slider input {
|
|
617
634
|
.container {
|
618
635
|
padding: 0;
|
619
636
|
}
|
637
|
+
.navbar-fixed-bottom {
|
638
|
+
position: relative;
|
639
|
+
top: auto;
|
640
|
+
}
|
620
641
|
@media (max-width: 767px) {
|
621
|
-
.navbar-fixed-top
|
642
|
+
.navbar-fixed-top {
|
622
643
|
position: relative;
|
623
644
|
top: auto;
|
624
645
|
}
|
@@ -676,8 +697,8 @@ div.interval-slider input {
|
|
676
697
|
}
|
677
698
|
|
678
699
|
.info-circle {
|
679
|
-
color: #
|
680
|
-
background-color: #
|
700
|
+
color: #333;
|
701
|
+
background-color: #ccc;
|
681
702
|
border-radius: 50%;
|
682
703
|
text-align: center;
|
683
704
|
vertical-align: middle;
|
@@ -722,3 +743,16 @@ div.interval-slider input {
|
|
722
743
|
canvas {
|
723
744
|
margin: 20px 0 30px;
|
724
745
|
}
|
746
|
+
|
747
|
+
#locale-select {
|
748
|
+
float: left;
|
749
|
+
margin: 8px 15px;
|
750
|
+
}
|
751
|
+
|
752
|
+
@media (max-width: 767px) {
|
753
|
+
#locale-select {
|
754
|
+
float: none;
|
755
|
+
width: auto;
|
756
|
+
margin: 15px auto;
|
757
|
+
}
|
758
|
+
}
|
data/web/locales/da.yml
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
# elements like %{queue} are variables and should not be translated
|
2
2
|
da:
|
3
|
-
Actions:
|
3
|
+
Actions: Handlinger
|
4
4
|
AddToQueue: Tilføj til kø
|
5
5
|
AreYouSure: Er du sikker?
|
6
6
|
AreYouSureDeleteJob: Er du sikker på at du vil slette dette job?
|
7
7
|
AreYouSureDeleteQueue: Er du sikker på at du vil slette %{queue} køen?
|
8
8
|
Arguments: Argumenter
|
9
|
+
AvgExecutionTime: Gennemsnitlig eksekveringstid
|
9
10
|
Busy: Travl
|
10
11
|
Class: Klasse
|
11
12
|
Connections: Forbindelser
|
@@ -18,21 +19,25 @@ da:
|
|
18
19
|
Enqueued: I kø
|
19
20
|
Error: Fejl
|
20
21
|
ErrorBacktrace: Fejl backtrace
|
21
|
-
ErrorClass:
|
22
|
-
ErrorMessage:
|
22
|
+
ErrorClass: Fejlklasse
|
23
|
+
ErrorMessage: Fejlbesked
|
23
24
|
Extras: Ekstra
|
24
25
|
Failed: Fejlet
|
26
|
+
Failure: Fejl
|
25
27
|
Failures: Fejl
|
26
28
|
GoBack: ← Tilbage
|
27
29
|
History: Historik
|
28
30
|
Job: Job
|
29
31
|
Jobs: Jobs
|
32
|
+
Latency: Forsinkelse
|
30
33
|
LastRetry: Sidste forsøg
|
31
34
|
LivePoll: Live Poll
|
32
35
|
MemoryUsage: RAM forbrug
|
36
|
+
Name: Navn
|
33
37
|
Namespace: Namespace
|
34
38
|
NextRetry: Næste forsøg
|
35
39
|
NoDeadJobsFound: Ingen døde jobs fundet
|
40
|
+
NoJobMetricsFound: Ingen nylig job-metrics blev fundet
|
36
41
|
NoRetriesFound: Ingen gen-forsøg var fundet
|
37
42
|
NoScheduledFound: Ingen jobs i kø fundet
|
38
43
|
OneMonth: 1 måned
|
@@ -43,7 +48,7 @@ da:
|
|
43
48
|
Processes: Processer
|
44
49
|
Queue: Kø
|
45
50
|
Queues: Køer
|
46
|
-
Realtime:
|
51
|
+
Realtime: Realtid
|
47
52
|
Retries: Forsøg
|
48
53
|
RetryAll: Forsøg alle
|
49
54
|
RetryCount: Antal forsøg
|
@@ -56,10 +61,12 @@ da:
|
|
56
61
|
Started: Startet
|
57
62
|
Status: Status
|
58
63
|
StopPolling: Stop Polling
|
64
|
+
Success: Succes
|
59
65
|
Thread: Tråd
|
60
66
|
Threads: Tråde
|
61
67
|
ThreeMonths: 3 måneder
|
62
68
|
Time: Tid
|
69
|
+
TotalExecutionTime: Total eksekveringstid
|
63
70
|
Uptime: Oppetid (dage)
|
64
71
|
Version: Version
|
65
72
|
When: Når
|
data/web/locales/en.yml
CHANGED
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,10 @@ 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
|
+
Bucket: Bucket
|
99
|
+
NoJobMetricsFound: Aucune statistique de tâche récente n'a été trouvée
|
data/web/locales/gd.yml
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
# elements like %{queue} are variables and should not be translated
|
2
|
+
gd:
|
3
|
+
Actions: Gnìomhan
|
4
|
+
AddToQueue: Cuir ris a’ chiutha
|
5
|
+
AreYouSure: A bheil thu cinnteach?
|
6
|
+
AreYouSureDeleteJob: A bheil thu cinnteach gu bheil thu airson an obair seo a sguabadh às?
|
7
|
+
AreYouSureDeleteQueue: A bheil thu cinnteach gu bheil thu airson ciutha %{queue} a sguabadh às? Sguabaidh seo às gach obair sa chiutha seo, nochdaidh e a-rithist nuair a phutas tu barrachd obraichean dha an uairsin.
|
8
|
+
Arguments: Argamaidean
|
9
|
+
BackToApp: Till dhan aplacaid
|
10
|
+
Busy: Trang
|
11
|
+
Class: Clas
|
12
|
+
Connections: Ceanglaichean
|
13
|
+
CreatedAt: Air a chruthachadh
|
14
|
+
CurrentMessagesInQueue: Obraichean làithreach am broinn <span class='title'>%{queue}</span>
|
15
|
+
Dashboard: Deas-bhòrd
|
16
|
+
Dead: Marbh
|
17
|
+
DeadJobs: Obraichean marbh
|
18
|
+
Delete: Sguab às
|
19
|
+
DeleteAll: Sguab às na h-uile
|
20
|
+
Deploy: Cuir an gnìomh
|
21
|
+
Enqueued: Sa chiutha
|
22
|
+
Error: Mearachd
|
23
|
+
ErrorBacktrace: Backtrace na mearachd
|
24
|
+
ErrorClass: Clas na mearachd
|
25
|
+
ErrorMessage: Teachdaireachd na mearachd
|
26
|
+
ExecutionTime: Àm a’ ghnìomha
|
27
|
+
Extras: Nithean a bharrachd
|
28
|
+
Failed: Air fàilligeadh
|
29
|
+
Failures: Fàilligidhean
|
30
|
+
Failure: Fàilligeadh
|
31
|
+
GoBack: ← Air ais
|
32
|
+
History: Eachdraidh
|
33
|
+
Job: Obair
|
34
|
+
Jobs: Obraichean
|
35
|
+
Kill: Marbh
|
36
|
+
KillAll: Marbh na h-uile
|
37
|
+
LastRetry: An oidhirp mu dheireadh
|
38
|
+
Latency: Foillidheachd
|
39
|
+
LivePoll: Ath-nuadhachadh beò
|
40
|
+
MemoryUsage: Cleachdadh a’ chuimhne
|
41
|
+
Name: Ainm
|
42
|
+
Namespace: Ainm-spàs
|
43
|
+
NextRetry: An ath-oidhirp
|
44
|
+
NoDeadJobsFound: Cha deach obair mharbh a lorg
|
45
|
+
NoRetriesFound: Cha deach ath-oidhirp a lorg
|
46
|
+
NoScheduledFound: Cha deach obair air an sgeideal a lorg
|
47
|
+
NotYetEnqueued: Chan eil seo sa chiutha fhathast
|
48
|
+
OneMonth: Mìos
|
49
|
+
OneWeek: Seachdain
|
50
|
+
OriginallyFailed: Dh’fhàillig e o thùs
|
51
|
+
Pause: Cuir ’na stad
|
52
|
+
Paused: ’Na stad
|
53
|
+
PeakMemoryUsage: Bàrr cleachdadh a’ chuimhne
|
54
|
+
Plugins: Plugain
|
55
|
+
PollingInterval: Eadaramh an ath-nuadhachaidh
|
56
|
+
Process: Pròiseas
|
57
|
+
Processed: Air pròiseasadh
|
58
|
+
Processes: Pròiseasan
|
59
|
+
Queue: Ciutha
|
60
|
+
Queues: Ciuthan
|
61
|
+
Quiet: Mùch
|
62
|
+
QuietAll: Mùch na h-uile
|
63
|
+
Realtime: Fìor-àm
|
64
|
+
Retries: Oidhirpean
|
65
|
+
RetryAll: Feuch ris na h-uile a-rithist
|
66
|
+
RetryCount: Cunntas nan oidhirpean
|
67
|
+
RetryNow: Feuch ris a-rithist an-dràsta
|
68
|
+
Scheduled: Air an sgeideal
|
69
|
+
ScheduledJobs: Obraichean air an sgeideal
|
70
|
+
Seconds: Diogan
|
71
|
+
ShowAll: Seall na h-uile
|
72
|
+
SixMonths: Leth-bhliadhna
|
73
|
+
Size: Meud
|
74
|
+
Started: Air a thòiseachadh
|
75
|
+
Status: Staid
|
76
|
+
Stop: Cuir stad air
|
77
|
+
StopAll: Cuir stad air na h-uile
|
78
|
+
StopPolling: Sguir dhen ath-nuadhachadh
|
79
|
+
Success: Chaidh leis
|
80
|
+
Summary: Geàrr-chunntas
|
81
|
+
Thread: Snàithlean
|
82
|
+
Threads: Snàithleanan
|
83
|
+
ThreeMonths: 3 mìosan
|
84
|
+
Time: Àm
|
85
|
+
Unpause: Lean air
|
86
|
+
Uptime: Beò fad (làithean)
|
87
|
+
Utilization: Cleachdadh
|
88
|
+
Version: Tionndadh
|
89
|
+
When: Cuin
|
90
|
+
Worker: Obraiche
|
91
|
+
active: gnìomhach
|
92
|
+
idle: ’na thàmh
|
93
|
+
Metrics: Meatraigeachd
|
94
|
+
NoDataFound: Cha deach dàta a lorg
|
95
|
+
TotalExecutionTime: Ùine iomlan nan gnìomhan
|
96
|
+
AvgExecutionTime: Ùine cuibheasach nan gnìomhan
|
97
|
+
Context: Co-theacsa
|
98
|
+
Bucket: Bucaid
|
99
|
+
NoJobMetricsFound: Cha deach meatraigeachd o chionn goirid air obair a lorg
|
data/web/locales/ja.yml
CHANGED
@@ -27,6 +27,7 @@ ja:
|
|
27
27
|
Extras: エクストラ
|
28
28
|
Failed: 失敗
|
29
29
|
Failures: 失敗
|
30
|
+
Failure: 失敗
|
30
31
|
GoBack: ← 戻る
|
31
32
|
History: 履歴
|
32
33
|
Job: ジョブ
|
@@ -75,6 +76,7 @@ ja:
|
|
75
76
|
Stop: 停止
|
76
77
|
StopAll: すべて停止
|
77
78
|
StopPolling: ポーリング停止
|
79
|
+
Success: 成功
|
78
80
|
Thread: スレッド
|
79
81
|
Threads: スレッド
|
80
82
|
ThreeMonths: 3 ヶ月
|
@@ -82,7 +84,7 @@ ja:
|
|
82
84
|
Unpause: 一時停止を解除
|
83
85
|
Metrics: メトリクス
|
84
86
|
NoDataFound: データが見つかりませんでした
|
85
|
-
|
87
|
+
TotalExecutionTime: 合計実行時間
|
86
88
|
AvgExecutionTime: 平均実行時間
|
87
89
|
Context: コンテキスト
|
88
90
|
Bucket: バケット
|
data/web/locales/pt-br.yml
CHANGED
@@ -5,10 +5,13 @@
|
|
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
|
10
|
+
Bucket: Bucket
|
9
11
|
Busy: Ocupados
|
10
12
|
Class: Classe
|
11
13
|
Connections: Conexões
|
14
|
+
Context: Contexto
|
12
15
|
CreatedAt: Criado em
|
13
16
|
CurrentMessagesInQueue: Mensagens atualmente na <span class='title'>%{queue}</span>
|
14
17
|
Dashboard: Painel
|
@@ -16,13 +19,16 @@
|
|
16
19
|
DeadJobs: Tarefas mortas
|
17
20
|
Delete: Apagar
|
18
21
|
DeleteAll: Apagar tudo
|
22
|
+
Deploy: Deploy
|
19
23
|
Enqueued: Na fila
|
20
24
|
Error: Erro
|
21
25
|
ErrorBacktrace: Rastreamento do erro
|
22
26
|
ErrorClass: Classe de erro
|
23
27
|
ErrorMessage: Mensagem de erro
|
28
|
+
ExecutionTime: Tempo de execução
|
24
29
|
Extras: Extras
|
25
30
|
Failed: Falhas
|
31
|
+
Failure: Falha
|
26
32
|
Failures: Falhas
|
27
33
|
GoBack: ← Voltar
|
28
34
|
History: Histórico
|
@@ -34,10 +40,13 @@
|
|
34
40
|
Latency: Latência
|
35
41
|
LivePoll: Live Poll
|
36
42
|
MemoryUsage: Uso de memória
|
43
|
+
Metrics: Métricas
|
37
44
|
Name: Nome
|
38
45
|
Namespace: Namespace
|
39
46
|
NextRetry: Próxima Tentativa
|
47
|
+
NoDataFound: Nenhum dado encontrado
|
40
48
|
NoDeadJobsFound: Nenhuma tarefa morta foi encontrada
|
49
|
+
NoJobMetricsFound: Nenhuma métrica de tarefa encontrada
|
41
50
|
NoRetriesFound: Nenhuma tentativa encontrada
|
42
51
|
NoScheduledFound: Nenhuma tarefa agendada foi encontrada
|
43
52
|
NotYetEnqueued: Ainda não enfileirado
|
@@ -47,6 +56,7 @@
|
|
47
56
|
Pause: Pausar
|
48
57
|
Paused: Pausado
|
49
58
|
PeakMemoryUsage: Pico de uso de memória
|
59
|
+
Uptime: Tempo de atividade
|
50
60
|
Plugins: Plug-ins
|
51
61
|
PollingInterval: Intervalo de Polling
|
52
62
|
Process: Processo
|
@@ -63,14 +73,24 @@
|
|
63
73
|
RetryNow: Tentar novamente agora
|
64
74
|
Scheduled: Agendados
|
65
75
|
ScheduledJobs: Tarefas agendadas
|
76
|
+
idle: Ocioso
|
77
|
+
active: Ativo
|
78
|
+
Seconds: Segundos
|
66
79
|
ShowAll: Mostrar todos
|
67
80
|
SixMonths: 6 meses
|
68
81
|
Size: Tamanho
|
82
|
+
Started: Iniciado
|
69
83
|
Stop: Parar
|
70
84
|
StopAll: Parar Todos
|
71
85
|
StopPolling: Parar Polling
|
86
|
+
Success: Sucesso
|
87
|
+
Summary: Resumo
|
72
88
|
Thread: Thread
|
73
89
|
Threads: Threads
|
90
|
+
ThreeMonths: 3 meses
|
91
|
+
TotalExecutionTime: Tempo total de execução
|
74
92
|
Unpause: Despausar
|
75
93
|
Utilization: Utilização
|
94
|
+
Version: Versão
|
95
|
+
When: Quando
|
76
96
|
Worker: Trabalhador
|
data/web/locales/tr.yml
ADDED
@@ -0,0 +1,101 @@
|
|
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
|
+
Bucket: Kova
|
99
|
+
NoJobMetricsFound: Son iş metrikleri bulunamadı
|
100
|
+
Filter: Filtre
|
101
|
+
AnyJobContent: Herhangi bir iş içeriği
|
data/web/locales/zh-cn.yml
CHANGED
@@ -32,23 +32,22 @@ zh-cn: # <---- change this to your locale code
|
|
32
32
|
Size: 容量
|
33
33
|
Actions: 动作
|
34
34
|
NextRetry: 下次重试
|
35
|
-
RetryCount:
|
35
|
+
RetryCount: 重试次数
|
36
36
|
RetryNow: 现在重试
|
37
37
|
Kill: 终止
|
38
|
-
LastRetry:
|
39
|
-
OriginallyFailed:
|
38
|
+
LastRetry: 上次重试
|
39
|
+
OriginallyFailed: 首次失败
|
40
40
|
AreYouSure: 你确定?
|
41
41
|
DeleteAll: 全部删除
|
42
42
|
RetryAll: 全部重试
|
43
43
|
KillAll: 全部终止
|
44
|
-
NoRetriesFound:
|
44
|
+
NoRetriesFound: 没有发现可重试
|
45
45
|
Error: 错误
|
46
|
-
ErrorBacktrace: 错误的回调追踪
|
47
46
|
ErrorClass: 错误类别
|
48
47
|
ErrorMessage: 错误消息
|
49
48
|
ErrorBacktrace: 错误细节
|
50
49
|
GoBack: ← 返回
|
51
|
-
NoScheduledFound:
|
50
|
+
NoScheduledFound: 没有发现计划任务
|
52
51
|
When: 当
|
53
52
|
ScheduledJobs: 计划任务
|
54
53
|
idle: 闲置
|
@@ -64,26 +63,26 @@ zh-cn: # <---- change this to your locale code
|
|
64
63
|
SixMonths: 六个月
|
65
64
|
Failures: 失败
|
66
65
|
DeadJobs: 已停滞任务
|
67
|
-
NoDeadJobsFound:
|
66
|
+
NoDeadJobsFound: 没有发现任何已停滞的任务
|
68
67
|
Dead: 已停滞
|
69
68
|
Process: 进程
|
70
|
-
Processes:
|
69
|
+
Processes: 进程
|
71
70
|
Name: 名称
|
72
71
|
Thread: 线程
|
73
72
|
Threads: 线程
|
74
73
|
Jobs: 任务
|
75
|
-
Paused:
|
76
|
-
Stop:
|
77
|
-
Quiet:
|
78
|
-
StopAll:
|
79
|
-
QuietAll:
|
80
|
-
PollingInterval:
|
81
|
-
Plugins:
|
82
|
-
NotYetEnqueued:
|
83
|
-
CreatedAt:
|
74
|
+
Paused: 已暂停
|
75
|
+
Stop: 强制暂停
|
76
|
+
Quiet: 暂停
|
77
|
+
StopAll: 全部强制暂停
|
78
|
+
QuietAll: 全部暂停
|
79
|
+
PollingInterval: 轮询周期
|
80
|
+
Plugins: 插件
|
81
|
+
NotYetEnqueued: 尚未进入队列
|
82
|
+
CreatedAt: 建立时间
|
84
83
|
BackToApp: 回首頁
|
85
|
-
Latency:
|
86
|
-
Pause:
|
84
|
+
Latency: 延迟
|
85
|
+
Pause: 暂停
|
87
86
|
Unpause: 取消暂停
|
88
87
|
Metrics: 指标
|
89
88
|
NoDataFound: 无数据
|
@@ -92,3 +91,5 @@ zh-cn: # <---- change this to your locale code
|
|
92
91
|
Context: 上下文
|
93
92
|
Bucket: 桶
|
94
93
|
NoJobMetricsFound: 无任务相关指标数据
|
94
|
+
Success: 成功
|
95
|
+
Failure: 失败
|