good_job 4.1.0 → 4.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +71 -0
- data/README.md +10 -10
- data/app/charts/good_job/performance_index_chart.rb +1 -1
- data/app/charts/good_job/performance_show_chart.rb +1 -1
- data/app/controllers/good_job/application_controller.rb +1 -1
- data/app/controllers/good_job/batches_controller.rb +6 -0
- data/app/controllers/good_job/frontends_controller.rb +6 -2
- data/app/controllers/good_job/performance_controller.rb +1 -1
- data/app/frontend/good_job/icons.svg +79 -0
- data/app/frontend/good_job/style.css +5 -0
- data/app/helpers/good_job/icons_helper.rb +8 -5
- data/app/models/concerns/good_job/advisory_lockable.rb +17 -7
- data/app/models/concerns/good_job/error_events.rb +2 -2
- data/app/models/concerns/good_job/reportable.rb +8 -12
- data/app/models/good_job/batch.rb +31 -9
- data/app/models/good_job/batch_record.rb +19 -20
- data/app/models/good_job/discrete_execution.rb +6 -59
- data/app/models/good_job/execution.rb +59 -4
- data/app/models/good_job/execution_result.rb +6 -6
- data/app/models/good_job/job.rb +543 -12
- data/app/models/good_job/process.rb +14 -3
- data/app/views/good_job/batches/_jobs.erb +1 -1
- data/app/views/good_job/batches/_table.erb +7 -1
- data/app/views/good_job/batches/show.html.erb +8 -0
- data/app/views/good_job/jobs/index.html.erb +1 -1
- data/app/views/layouts/good_job/application.html.erb +7 -7
- data/config/brakeman.ignore +75 -0
- data/config/locales/de.yml +54 -49
- data/config/locales/en.yml +5 -0
- data/config/locales/es.yml +19 -14
- data/config/locales/fr.yml +5 -0
- data/config/locales/it.yml +5 -0
- data/config/locales/ja.yml +10 -5
- data/config/locales/ko.yml +9 -4
- data/config/locales/nl.yml +5 -0
- data/config/locales/pt-BR.yml +5 -0
- data/config/locales/ru.yml +5 -0
- data/config/locales/tr.yml +5 -0
- data/config/locales/uk.yml +6 -1
- data/config/routes.rb +8 -4
- data/lib/good_job/active_job_extensions/concurrency.rb +109 -98
- data/lib/good_job/adapter/inline_buffer.rb +73 -0
- data/lib/good_job/adapter.rb +59 -53
- data/lib/good_job/capsule_tracker.rb +2 -2
- data/lib/good_job/configuration.rb +13 -12
- data/lib/good_job/cron_manager.rb +1 -3
- data/lib/good_job/current_thread.rb +4 -4
- data/lib/good_job/notifier/process_heartbeat.rb +3 -2
- data/lib/good_job/version.rb +1 -1
- data/lib/good_job.rb +6 -5
- metadata +6 -20
- data/app/models/good_job/base_execution.rb +0 -605
- data/app/views/good_job/shared/icons/_arrow_clockwise.html.erb +0 -5
- data/app/views/good_job/shared/icons/_check.html.erb +0 -5
- data/app/views/good_job/shared/icons/_circle_half.html.erb +0 -4
- data/app/views/good_job/shared/icons/_clock.html.erb +0 -5
- data/app/views/good_job/shared/icons/_dash_circle.html.erb +0 -5
- data/app/views/good_job/shared/icons/_dots.html.erb +0 -3
- data/app/views/good_job/shared/icons/_eject.html.erb +0 -4
- data/app/views/good_job/shared/icons/_exclamation.html.erb +0 -5
- data/app/views/good_job/shared/icons/_globe.html.erb +0 -3
- data/app/views/good_job/shared/icons/_info.html.erb +0 -4
- data/app/views/good_job/shared/icons/_moon_stars_fill.html.erb +0 -5
- data/app/views/good_job/shared/icons/_pause.html.erb +0 -4
- data/app/views/good_job/shared/icons/_play.html.erb +0 -4
- data/app/views/good_job/shared/icons/_skip_forward.html.erb +0 -4
- data/app/views/good_job/shared/icons/_stop.html.erb +0 -4
- data/app/views/good_job/shared/icons/_sun_fill.html.erb +0 -4
@@ -7,7 +7,7 @@
|
|
7
7
|
<nav aria-label="<%= t ".job_pagination" %>" class="mt-3">
|
8
8
|
<ul class="pagination">
|
9
9
|
<li class="page-item">
|
10
|
-
<%= link_to(@filter.to_params(after_scheduled_at:
|
10
|
+
<%= link_to(@filter.to_params(after_scheduled_at: @filter.last.scheduled_at || @filter.last.created_at, after_id: @filter.last.id), class: "page-link") do %>
|
11
11
|
<%= t ".older_jobs" %> <span aria-hidden="true">»</span>
|
12
12
|
<% end %>
|
13
13
|
</li>
|
@@ -21,13 +21,13 @@
|
|
21
21
|
</script>
|
22
22
|
|
23
23
|
<%# Do not use asset tag helpers to avoid paths being overriden by config.asset_host %>
|
24
|
-
<%= tag.link rel: "stylesheet", href: frontend_static_path(:bootstrap, format: :css,
|
25
|
-
<%= tag.link rel: "stylesheet", href: frontend_static_path(:style, format: :css,
|
26
|
-
<%= tag.script "", src: frontend_static_path(:bootstrap, format: :js,
|
27
|
-
<%= tag.script "", src: frontend_static_path(:chartjs, format: :js,
|
28
|
-
<%= tag.script "", src: frontend_static_path(:rails_ujs, format: :js,
|
29
|
-
<%= tag.script "", src: frontend_static_path(:es_module_shims, format: :js,
|
30
|
-
<% importmaps = GoodJob::FrontendsController.js_modules.keys.index_with { |module_name| frontend_module_path(module_name, format: :js, locale: nil
|
24
|
+
<%= tag.link rel: "stylesheet", href: frontend_static_path(:bootstrap, format: :css, locale: nil), nonce: content_security_policy_nonce %>
|
25
|
+
<%= tag.link rel: "stylesheet", href: frontend_static_path(:style, format: :css, locale: nil), nonce: content_security_policy_nonce %>
|
26
|
+
<%= tag.script "", src: frontend_static_path(:bootstrap, format: :js, locale: nil), nonce: content_security_policy_nonce %>
|
27
|
+
<%= tag.script "", src: frontend_static_path(:chartjs, format: :js, locale: nil), nonce: content_security_policy_nonce %>
|
28
|
+
<%= tag.script "", src: frontend_static_path(:rails_ujs, format: :js, locale: nil), nonce: content_security_policy_nonce %>
|
29
|
+
<%= tag.script "", src: frontend_static_path(:es_module_shims, format: :js, locale: nil), async: true, nonce: content_security_policy_nonce %>
|
30
|
+
<% importmaps = GoodJob::FrontendsController.js_modules.keys.index_with { |module_name| frontend_module_path(module_name, format: :js, locale: nil) } %>
|
31
31
|
<%= tag.script({ imports: importmaps }.to_json.html_safe, type: "importmap", nonce: content_security_policy_nonce) %>
|
32
32
|
<%= tag.script "", type: "module", nonce: content_security_policy_nonce do %> import "application"; <% end %>
|
33
33
|
</head>
|
@@ -0,0 +1,75 @@
|
|
1
|
+
{
|
2
|
+
"ignored_warnings": [
|
3
|
+
{
|
4
|
+
"warning_type": "Dynamic Render Path",
|
5
|
+
"warning_code": 15,
|
6
|
+
"fingerprint": "041ae0dc908151bac0ef0952c625f0dce3a05d2c01a710397a613ef10083f7ae",
|
7
|
+
"check_name": "Render",
|
8
|
+
"message": "Render path contains parameter value",
|
9
|
+
"file": "app/controllers/good_job/frontends_controller.rb",
|
10
|
+
"line": 47,
|
11
|
+
"link": "https://brakemanscanner.org/docs/warning_types/dynamic_render_path/",
|
12
|
+
"code": "render(file => (self.class.js_modules[params[:id].to_sym] or raise(ActionController::RoutingError, \"Not Found\")), {})",
|
13
|
+
"render_path": null,
|
14
|
+
"location": {
|
15
|
+
"type": "method",
|
16
|
+
"class": "GoodJob::FrontendsController",
|
17
|
+
"method": "module"
|
18
|
+
},
|
19
|
+
"user_input": "params[:id].to_sym",
|
20
|
+
"confidence": "Weak",
|
21
|
+
"cwe_id": [
|
22
|
+
22
|
23
|
+
],
|
24
|
+
"note": "Files are explicitly enumerated in the array"
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"warning_type": "Dynamic Render Path",
|
28
|
+
"warning_code": 15,
|
29
|
+
"fingerprint": "b0c2888c9b217671d90d0141b49b036af3b2a70c63b02968cc97ae2052c86272",
|
30
|
+
"check_name": "Render",
|
31
|
+
"message": "Render path contains parameter value",
|
32
|
+
"file": "app/controllers/good_job/frontends_controller.rb",
|
33
|
+
"line": 41,
|
34
|
+
"link": "https://brakemanscanner.org/docs/warning_types/dynamic_render_path/",
|
35
|
+
"code": "render(file => ({ :css => ({ :bootstrap => GoodJob::Engine.root.join(\"app\", \"frontend\", \"good_job\", \"vendor\", \"bootstrap\", \"bootstrap.min.css\"), :style => GoodJob::Engine.root.join(\"app\", \"frontend\", \"good_job\", \"style.css\") }), :js => ({ :bootstrap => GoodJob::Engine.root.join(\"app\", \"frontend\", \"good_job\", \"vendor\", \"bootstrap\", \"bootstrap.bundle.min.js\"), :chartjs => GoodJob::Engine.root.join(\"app\", \"frontend\", \"good_job\", \"vendor\", \"chartjs\", \"chart.min.js\"), :es_module_shims => GoodJob::Engine.root.join(\"app\", \"frontend\", \"good_job\", \"vendor\", \"es_module_shims.js\"), :rails_ujs => GoodJob::Engine.root.join(\"app\", \"frontend\", \"good_job\", \"vendor\", \"rails_ujs.js\") }), :svg => ({ :icons => GoodJob::Engine.root.join(\"app\", \"frontend\", \"good_job\", \"icons.svg\") }) }.dig(params[:format].to_sym, params[:id].to_sym) or raise(ActionController::RoutingError, \"Not Found\")), {})",
|
36
|
+
"render_path": null,
|
37
|
+
"location": {
|
38
|
+
"type": "method",
|
39
|
+
"class": "GoodJob::FrontendsController",
|
40
|
+
"method": "static"
|
41
|
+
},
|
42
|
+
"user_input": "params[:id].to_sym",
|
43
|
+
"confidence": "Weak",
|
44
|
+
"cwe_id": [
|
45
|
+
22
|
46
|
+
],
|
47
|
+
"note": "Files are explicitly enumerated in the array"
|
48
|
+
},
|
49
|
+
{
|
50
|
+
"warning_type": "SQL Injection",
|
51
|
+
"warning_code": 0,
|
52
|
+
"fingerprint": "c837568c590d9608a8bb9927b31b9597aaacc72053b6482e1a54bd02aa0dd2d7",
|
53
|
+
"check_name": "SQL",
|
54
|
+
"message": "Possible SQL injection",
|
55
|
+
"file": "app/models/good_job/job.rb",
|
56
|
+
"line": 140,
|
57
|
+
"link": "https://brakemanscanner.org/docs/warning_types/sql_injection/",
|
58
|
+
"code": "Arel.sql(\"(CASE #{queues.map.with_index do\n sanitize_sql_array([\"WHEN queue_name = ? THEN ?\", queue_name, index])\n end.join(\" \")} ELSE #{queues.size} END)\")",
|
59
|
+
"render_path": null,
|
60
|
+
"location": {
|
61
|
+
"type": "method",
|
62
|
+
"class": "Job",
|
63
|
+
"method": null
|
64
|
+
},
|
65
|
+
"user_input": "queues.map.with_index do\n sanitize_sql_array([\"WHEN queue_name = ? THEN ?\", queue_name, index])\n end.join(\" \")",
|
66
|
+
"confidence": "Medium",
|
67
|
+
"cwe_id": [
|
68
|
+
89
|
69
|
+
],
|
70
|
+
"note": "Developer provided value, queue_name, is sanitized."
|
71
|
+
}
|
72
|
+
],
|
73
|
+
"updated": "2024-07-18 18:05:56 -0700",
|
74
|
+
"brakeman_version": "6.1.2"
|
75
|
+
}
|
data/config/locales/de.yml
CHANGED
@@ -9,32 +9,37 @@ de:
|
|
9
9
|
reschedule: Umplanen
|
10
10
|
retry: Wiederholen
|
11
11
|
batches:
|
12
|
+
actions:
|
13
|
+
confirm_retry: Bist du sicher, dass du diesen Batch wiederholen willst?
|
14
|
+
retry: Batch wiederholen
|
12
15
|
index:
|
13
|
-
older_batches: Ältere
|
14
|
-
title:
|
16
|
+
older_batches: Ältere Batches
|
17
|
+
title: Batches
|
15
18
|
jobs:
|
16
19
|
actions:
|
17
|
-
confirm_destroy:
|
18
|
-
confirm_discard:
|
19
|
-
confirm_reschedule:
|
20
|
-
confirm_retry:
|
21
|
-
destroy:
|
22
|
-
discard:
|
23
|
-
reschedule:
|
20
|
+
confirm_destroy: Bist du sicher, dass du diesen Job zerstören wilst?
|
21
|
+
confirm_discard: Bist du sicher, dass du diesen Job verwerfen willst?
|
22
|
+
confirm_reschedule: Bist du sicher, dass du diesen Job verschieben willst?
|
23
|
+
confirm_retry: Bist du sicher, dass du diesen Job erneut versuchen willst?
|
24
|
+
destroy: Job zerstören
|
25
|
+
discard: Job verwerfen
|
26
|
+
reschedule: Job neu planen
|
24
27
|
retry: Job wiederholen
|
25
28
|
title: Aktionen
|
26
29
|
no_jobs_found: Keine Jobs gefunden.
|
30
|
+
retry:
|
31
|
+
notice: Batch wurde wiederholt
|
27
32
|
show:
|
28
33
|
attributes: Attribute
|
29
34
|
batched_jobs: Batch-Jobs
|
30
35
|
callback_jobs: Callback-Jobs
|
31
36
|
table:
|
32
|
-
no_batches_found: Keine
|
37
|
+
no_batches_found: Keine Batches gefunden.
|
33
38
|
cron_entries:
|
34
39
|
actions:
|
35
|
-
confirm_disable:
|
36
|
-
confirm_enable:
|
37
|
-
confirm_enqueue:
|
40
|
+
confirm_disable: Bist du sicher, dass du diesen Cron-Eintrag deaktivieren willst?
|
41
|
+
confirm_enable: Bist du sicher, dass du diesen Cron-Eintrag aktivieren willst?
|
42
|
+
confirm_enqueue: Bist du sicher, dass du diesen Cron-Eintrag in die Warteschlange stellen willst?
|
38
43
|
disable: Cron-Eintrag deaktivieren
|
39
44
|
enable: Cron-Eintrag aktivieren
|
40
45
|
enqueue: Cron-Eintrag jetzt einreihen
|
@@ -48,7 +53,7 @@ de:
|
|
48
53
|
no_cron_schedules_found: Keine Cron-Zeitpläne gefunden.
|
49
54
|
title: Cron-Zeitpläne
|
50
55
|
show:
|
51
|
-
cron_entry_key: Cron-
|
56
|
+
cron_entry_key: Cron-Schlüssel
|
52
57
|
datetime:
|
53
58
|
distance_in_words:
|
54
59
|
about_x_hours:
|
@@ -95,11 +100,11 @@ de:
|
|
95
100
|
minutes: "%{min}m %{sec}s"
|
96
101
|
seconds: "%{sec}s"
|
97
102
|
error_event:
|
98
|
-
discarded:
|
103
|
+
discarded: Verworfen
|
99
104
|
handled: Abgewickelt
|
100
105
|
interrupted: Unterbrochen
|
101
106
|
retried: Wiederholt
|
102
|
-
retry_stopped:
|
107
|
+
retry_stopped: Wiederholung gestoppt
|
103
108
|
unhandled: Unbehandelt
|
104
109
|
helpers:
|
105
110
|
relative_time:
|
@@ -107,20 +112,20 @@ de:
|
|
107
112
|
past: Vor %{time}
|
108
113
|
jobs:
|
109
114
|
actions:
|
110
|
-
confirm_destroy:
|
111
|
-
confirm_discard:
|
112
|
-
confirm_force_discard:
|
113
|
-
confirm_reschedule:
|
114
|
-
confirm_retry:
|
115
|
-
destroy:
|
116
|
-
discard:
|
115
|
+
confirm_destroy: Bist du sicher, dass du diesen Job zerstören willst?
|
116
|
+
confirm_discard: Bist du sicher, dass du diesen Job verwerfen willst?
|
117
|
+
confirm_force_discard: Bist du sicher, dass du das Verwerfen dieses Jobs erzwingen möchten? Der Job wird als verworfen markiert, aber der laufende Job wird nicht gestoppt – er wird jedoch bei Fehlern nicht erneut versucht.
|
118
|
+
confirm_reschedule: Bist du sicher, dass du diesen Job verschieben willst?
|
119
|
+
confirm_retry: Bist du sicher, dass du diesen Job wiederholen willst?
|
120
|
+
destroy: Job zerstören
|
121
|
+
discard: Job verwerfen
|
117
122
|
force_discard: Job verwerfen erzwingen
|
118
|
-
reschedule:
|
123
|
+
reschedule: Job neu planen
|
119
124
|
retry: Job wiederholen
|
120
125
|
destroy:
|
121
126
|
notice: Hiob wurde zerstört
|
122
127
|
discard:
|
123
|
-
notice:
|
128
|
+
notice: Job wurde verworfen
|
124
129
|
executions:
|
125
130
|
application_trace: Application Trace
|
126
131
|
full_trace: Full Trace
|
@@ -131,25 +136,25 @@ de:
|
|
131
136
|
notice: Der Job wurde zwangsweise verworfen. Die Ausführung wird fortgesetzt, bei Fehlern wird der Vorgang jedoch nicht wiederholt
|
132
137
|
index:
|
133
138
|
job_pagination: Job-Paginierung
|
134
|
-
older_jobs: Ältere
|
139
|
+
older_jobs: Ältere Jobs
|
135
140
|
reschedule:
|
136
|
-
notice:
|
141
|
+
notice: Job wurde neu planen
|
137
142
|
retry:
|
138
|
-
notice:
|
143
|
+
notice: Job wurde wiederholt
|
139
144
|
show:
|
140
|
-
jobs:
|
145
|
+
jobs: Jobs
|
141
146
|
table:
|
142
147
|
actions:
|
143
148
|
apply_to_all:
|
144
|
-
one:
|
145
|
-
other:
|
146
|
-
confirm_destroy_all:
|
147
|
-
confirm_discard_all:
|
148
|
-
confirm_reschedule_all:
|
149
|
-
confirm_retry_all:
|
150
|
-
destroy_all:
|
149
|
+
one: Auf einen Job anwenden.
|
150
|
+
other: Auf alle %{count} Jobs anwenden.
|
151
|
+
confirm_destroy_all: Bist du sicher, dass du die ausgewählten Jobs löschen willst?
|
152
|
+
confirm_discard_all: Bist du sicher, dass du die ausgewählten Jobs verferfen willst?
|
153
|
+
confirm_reschedule_all: Bist du sicher, dass du die ausgewählten Jobs neu planen willst?
|
154
|
+
confirm_retry_all: Bist du sicher, dass du die ausgewählten Jobs wiederholen willst?
|
155
|
+
destroy_all: Alle zerstören
|
151
156
|
discard_all: Alle verwerfen
|
152
|
-
reschedule_all:
|
157
|
+
reschedule_all: Alle neu planen
|
153
158
|
retry_all: Alle wiederholen
|
154
159
|
title: Aktionen
|
155
160
|
no_jobs_found: Keine Jobs gefunden.
|
@@ -165,7 +170,7 @@ de:
|
|
165
170
|
enqueued_at: Eingereiht bei
|
166
171
|
finished: Fertig
|
167
172
|
finished_at: Fertig um
|
168
|
-
jobs:
|
173
|
+
jobs: Jobs
|
169
174
|
name: Name
|
170
175
|
cron:
|
171
176
|
class: Klasse
|
@@ -197,9 +202,9 @@ de:
|
|
197
202
|
performance:
|
198
203
|
index:
|
199
204
|
average_duration: Durchschnittliche Dauer
|
200
|
-
chart_title: Gesamtdauer der
|
201
|
-
executions:
|
202
|
-
job_class:
|
205
|
+
chart_title: Gesamtdauer der Jobs in Sekunden
|
206
|
+
executions: Ausführungen
|
207
|
+
job_class: Job-Klasse
|
203
208
|
maximum_duration: Maximale Dauer
|
204
209
|
minimum_duration: Mindestdauer
|
205
210
|
title: Leistung
|
@@ -210,8 +215,8 @@ de:
|
|
210
215
|
index:
|
211
216
|
cron_enabled: Cron aktiviert
|
212
217
|
no_good_job_processes_found: Keine GoodJob-Prozesse gefunden.
|
213
|
-
process:
|
214
|
-
schedulers:
|
218
|
+
process: Prozess
|
219
|
+
schedulers: Scheduler
|
215
220
|
started: Gestartet
|
216
221
|
title: Prozesse
|
217
222
|
updated: Aktualisiert
|
@@ -224,9 +229,9 @@ de:
|
|
224
229
|
all: Alle
|
225
230
|
all_jobs: Alle Jobs
|
226
231
|
all_queues: Alle Warteschlangen
|
227
|
-
clear:
|
228
|
-
job_name:
|
229
|
-
placeholder:
|
232
|
+
clear: Löschen
|
233
|
+
job_name: Job-Name
|
234
|
+
placeholder: Suche nach Klasse, Job-ID, Jobparameter und Fehlertext.
|
230
235
|
queue_name: Warteschlangenname
|
231
236
|
search: Suchen
|
232
237
|
navbar:
|
@@ -240,14 +245,14 @@ de:
|
|
240
245
|
theme:
|
241
246
|
auto: Auto
|
242
247
|
dark: Dunkel
|
243
|
-
light:
|
244
|
-
theme:
|
248
|
+
light: Hell
|
249
|
+
theme: Theme
|
245
250
|
pending_migrations: GoodJob hat ausstehende Datenbankmigrationen.
|
246
251
|
secondary_navbar:
|
247
252
|
inspiration: Denk daran, auch du machst einen guten Job!
|
248
253
|
last_updated: Zuletzt aktualisiert
|
249
254
|
status:
|
250
|
-
discarded:
|
255
|
+
discarded: Verworfen
|
251
256
|
queued: In der Warteschlange
|
252
257
|
retried: Wiederholt
|
253
258
|
running: Laufend
|
data/config/locales/en.yml
CHANGED
@@ -9,6 +9,9 @@ en:
|
|
9
9
|
reschedule: Reschedule
|
10
10
|
retry: Retry
|
11
11
|
batches:
|
12
|
+
actions:
|
13
|
+
confirm_retry: Are you sure you want to retry this batch?
|
14
|
+
retry: Retry
|
12
15
|
index:
|
13
16
|
older_batches: Older batches
|
14
17
|
title: Batches
|
@@ -24,6 +27,8 @@ en:
|
|
24
27
|
retry: Retry Job
|
25
28
|
title: Actions
|
26
29
|
no_jobs_found: No jobs found.
|
30
|
+
retry:
|
31
|
+
notice: Batch has been retried
|
27
32
|
show:
|
28
33
|
attributes: Attributes
|
29
34
|
batched_jobs: Batched Jobs
|
data/config/locales/es.yml
CHANGED
@@ -9,9 +9,12 @@ es:
|
|
9
9
|
reschedule: Reprogramar
|
10
10
|
retry: Reintentar
|
11
11
|
batches:
|
12
|
+
actions:
|
13
|
+
confirm_retry: "¿Estás seguro que querés reintentar este lote?"
|
14
|
+
retry: Reintentar
|
12
15
|
index:
|
13
|
-
older_batches:
|
14
|
-
title:
|
16
|
+
older_batches: Lotes anteriores
|
17
|
+
title: Lotes
|
15
18
|
jobs:
|
16
19
|
actions:
|
17
20
|
confirm_destroy: "¿Estás seguro que querés eliminar esta tarea?"
|
@@ -24,12 +27,14 @@ es:
|
|
24
27
|
retry: Reintentar tarea
|
25
28
|
title: Acciones
|
26
29
|
no_jobs_found: No hay tareas.
|
30
|
+
retry:
|
31
|
+
notice: El lote ha sido reintentado
|
27
32
|
show:
|
28
33
|
attributes: Atributos
|
29
|
-
batched_jobs:
|
34
|
+
batched_jobs: Tareas en lote
|
30
35
|
callback_jobs: Callback Jobs
|
31
36
|
table:
|
32
|
-
no_batches_found: No hay
|
37
|
+
no_batches_found: No hay lotes.
|
33
38
|
cron_entries:
|
34
39
|
actions:
|
35
40
|
confirm_disable: "¿Estás seguro que querés deshabilitar esta tarea programada?"
|
@@ -109,12 +114,12 @@ es:
|
|
109
114
|
actions:
|
110
115
|
confirm_destroy: "¿Estás seguro que querés eliminar esta tarea?"
|
111
116
|
confirm_discard: "¿Estás seguro que querés descartar esta tarea?"
|
112
|
-
confirm_force_discard: "¿Está seguro de que desea forzar el descarte de
|
117
|
+
confirm_force_discard: "¿Está seguro de que desea forzar el descarte de esta tarea? La tarea se marcará como descartada, pero la tarea en ejecución no se detendrá; sin embargo, no se volverá a intentar en caso de falla.\n"
|
113
118
|
confirm_reschedule: "¿Estás seguro que querés reprogramar esta tarea?"
|
114
119
|
confirm_retry: "¿Estás seguro que querés reintentar esta tarea?"
|
115
120
|
destroy: Eliminar tarea
|
116
121
|
discard: Descartar tarea
|
117
|
-
force_discard: Forzar el descarte
|
122
|
+
force_discard: Forzar el descarte de la tarea
|
118
123
|
reschedule: Reprogramar tarea
|
119
124
|
retry: Reiuntentar tarea
|
120
125
|
destroy:
|
@@ -122,13 +127,13 @@ es:
|
|
122
127
|
discard:
|
123
128
|
notice: La tarea ha sido descartada
|
124
129
|
executions:
|
125
|
-
application_trace:
|
126
|
-
full_trace:
|
130
|
+
application_trace: Traza de la aplicación
|
131
|
+
full_trace: Traza completa
|
127
132
|
in_queue: en cola
|
128
133
|
runtime: en ejecución
|
129
134
|
title: Ejecuciones
|
130
135
|
force_discard:
|
131
|
-
notice:
|
136
|
+
notice: La tarea ha sido descartada a la fuerza. Continuará ejecutándose pero no se volverá a intentar en caso de fallas.
|
132
137
|
index:
|
133
138
|
job_pagination: Paginación de tareas
|
134
139
|
older_jobs: Tareas anteriores
|
@@ -197,12 +202,12 @@ es:
|
|
197
202
|
performance:
|
198
203
|
index:
|
199
204
|
average_duration: Duración promedio
|
200
|
-
chart_title: Tiempo total de ejecución
|
205
|
+
chart_title: Tiempo total de ejecución de la tarea en segundos
|
201
206
|
executions: Ejecuciones
|
202
|
-
job_class: clase de
|
207
|
+
job_class: clase de tarea
|
203
208
|
maximum_duration: Duración máxima
|
204
209
|
minimum_duration: Duración mínima
|
205
|
-
title:
|
210
|
+
title: Rendimiento
|
206
211
|
show:
|
207
212
|
slow: Lento
|
208
213
|
title: Actuación
|
@@ -230,12 +235,12 @@ es:
|
|
230
235
|
queue_name: Nombre de la cola
|
231
236
|
search: Buscar
|
232
237
|
navbar:
|
233
|
-
batches:
|
238
|
+
batches: Lotes
|
234
239
|
cron_schedules: Cron
|
235
240
|
jobs: Tareas
|
236
241
|
live_poll: En vivo
|
237
242
|
name: "GoodJob 👍"
|
238
|
-
performance:
|
243
|
+
performance: Rendimiento
|
239
244
|
processes: Procesos
|
240
245
|
theme:
|
241
246
|
auto: Auto
|
data/config/locales/fr.yml
CHANGED
@@ -9,6 +9,9 @@ fr:
|
|
9
9
|
reschedule: Reprogrammer
|
10
10
|
retry: Recommencez
|
11
11
|
batches:
|
12
|
+
actions:
|
13
|
+
confirm_retry: Voulez-vous vraiment réessayer ce lot ?
|
14
|
+
retry: Réessayer
|
12
15
|
index:
|
13
16
|
older_batches: Lots plus anciens
|
14
17
|
title: Lots
|
@@ -24,6 +27,8 @@ fr:
|
|
24
27
|
retry: Réessayer le job
|
25
28
|
title: Actions
|
26
29
|
no_jobs_found: Aucun job trouvé.
|
30
|
+
retry:
|
31
|
+
notice: Le lot a été réessayé
|
27
32
|
show:
|
28
33
|
attributes: Attributs
|
29
34
|
batched_jobs: Jobs groupés
|
data/config/locales/it.yml
CHANGED
@@ -9,6 +9,9 @@ it:
|
|
9
9
|
reschedule: Riprogramma
|
10
10
|
retry: Riprova
|
11
11
|
batches:
|
12
|
+
actions:
|
13
|
+
confirm_retry: Sei sicuro di voler riprovare questo batch?
|
14
|
+
retry: Riprova
|
12
15
|
index:
|
13
16
|
older_batches: Batch più vecchi
|
14
17
|
title: Batch
|
@@ -24,6 +27,8 @@ it:
|
|
24
27
|
retry: Riprova job
|
25
28
|
title: Azioni
|
26
29
|
no_jobs_found: Nessun job trovato.
|
30
|
+
retry:
|
31
|
+
notice: Il batch è stato riprovato
|
27
32
|
show:
|
28
33
|
attributes: Attributi
|
29
34
|
batched_jobs: Job raggruppati
|
data/config/locales/ja.yml
CHANGED
@@ -9,6 +9,9 @@ ja:
|
|
9
9
|
reschedule: 再スケジュールする
|
10
10
|
retry: 再試行する
|
11
11
|
batches:
|
12
|
+
actions:
|
13
|
+
confirm_retry: このバッチを再試行してもよろしいですか?
|
14
|
+
retry: バッチを再試行する
|
12
15
|
index:
|
13
16
|
older_batches: より古いバッチ
|
14
17
|
title: バッチ
|
@@ -24,6 +27,8 @@ ja:
|
|
24
27
|
retry: ジョブを再試行する
|
25
28
|
title: アクション
|
26
29
|
no_jobs_found: ジョブが見つかりませんでした。
|
30
|
+
retry:
|
31
|
+
notice: バッチが再試行されました
|
27
32
|
show:
|
28
33
|
attributes: 属性
|
29
34
|
batched_jobs: バッチ処理されたジョブ
|
@@ -122,9 +127,9 @@ ja:
|
|
122
127
|
discard:
|
123
128
|
notice: ジョブが破棄されました
|
124
129
|
executions:
|
125
|
-
application_trace:
|
126
|
-
full_trace:
|
127
|
-
in_queue:
|
130
|
+
application_trace: アプリケーショントレース
|
131
|
+
full_trace: フルトレース
|
132
|
+
in_queue: キュー内
|
128
133
|
runtime: 実行時間
|
129
134
|
title: 実行
|
130
135
|
force_discard:
|
@@ -198,8 +203,8 @@ ja:
|
|
198
203
|
index:
|
199
204
|
average_duration: 平均所要時間
|
200
205
|
chart_title: ジョブの総実行時間(秒
|
201
|
-
executions:
|
202
|
-
job_class:
|
206
|
+
executions: 実行
|
207
|
+
job_class: ジョブクラス
|
203
208
|
maximum_duration: 最大持続時間
|
204
209
|
minimum_duration: 最小期間
|
205
210
|
title: パフォーマンス
|
data/config/locales/ko.yml
CHANGED
@@ -9,6 +9,9 @@ ko:
|
|
9
9
|
reschedule: 재예약하기
|
10
10
|
retry: 다시 시도하기
|
11
11
|
batches:
|
12
|
+
actions:
|
13
|
+
confirm_retry: 이 배치를 다시 시도하시겠습니까?
|
14
|
+
retry: 배치 다시 시도
|
12
15
|
index:
|
13
16
|
older_batches: 더 오래된 배치
|
14
17
|
title: 배치
|
@@ -24,6 +27,8 @@ ko:
|
|
24
27
|
retry: 작업 다시 시도
|
25
28
|
title: 작업 액션
|
26
29
|
no_jobs_found: 작업이 없습니다.
|
30
|
+
retry:
|
31
|
+
notice: 배치가 다시 시도되었습니다.
|
27
32
|
show:
|
28
33
|
attributes: 속성
|
29
34
|
batched_jobs: 배치된 작업
|
@@ -122,8 +127,8 @@ ko:
|
|
122
127
|
discard:
|
123
128
|
notice: 작업이 폐기되었습니다.
|
124
129
|
executions:
|
125
|
-
application_trace:
|
126
|
-
full_trace:
|
130
|
+
application_trace: 애플리케이션 추적
|
131
|
+
full_trace: 전체 추적
|
127
132
|
in_queue: 대기 중
|
128
133
|
runtime: 실행 시간
|
129
134
|
title: 실행
|
@@ -198,8 +203,8 @@ ko:
|
|
198
203
|
index:
|
199
204
|
average_duration: 평균 지속 시간
|
200
205
|
chart_title: 총 작업 실행 시간(초)
|
201
|
-
executions:
|
202
|
-
job_class:
|
206
|
+
executions: 실행
|
207
|
+
job_class: 작업 클래스
|
203
208
|
maximum_duration: 최대 기간
|
204
209
|
minimum_duration: 최소 기간
|
205
210
|
title: 성능
|
data/config/locales/nl.yml
CHANGED
@@ -9,6 +9,9 @@ nl:
|
|
9
9
|
reschedule: Opnieuw plannen
|
10
10
|
retry: Opnieuw proberen
|
11
11
|
batches:
|
12
|
+
actions:
|
13
|
+
confirm_retry: Weet je zeker dat je deze batch opnieuw wilt proberen?
|
14
|
+
retry: Batch opnieuw proberen
|
12
15
|
index:
|
13
16
|
older_batches: Oudere partijen
|
14
17
|
title: Partijen
|
@@ -24,6 +27,8 @@ nl:
|
|
24
27
|
retry: Taak opnieuw
|
25
28
|
title: Acties
|
26
29
|
no_jobs_found: Geen vacatures gevonden.
|
30
|
+
retry:
|
31
|
+
notice: Batch is opnieuw geprobeerd
|
27
32
|
show:
|
28
33
|
attributes: attributen
|
29
34
|
batched_jobs: Gegroepeerde banen
|
data/config/locales/pt-BR.yml
CHANGED
@@ -9,6 +9,9 @@ pt-BR:
|
|
9
9
|
reschedule: Reagendar
|
10
10
|
retry: Tentar novamente
|
11
11
|
batches:
|
12
|
+
actions:
|
13
|
+
confirm_retry: Tem certeza de que deseja tentar novamente este lote?
|
14
|
+
retry: Tentar novamente
|
12
15
|
index:
|
13
16
|
older_batches: Lotes antigos
|
14
17
|
title: Lotes
|
@@ -24,6 +27,8 @@ pt-BR:
|
|
24
27
|
retry: Tentar Tarefa Novamente
|
25
28
|
title: Ações
|
26
29
|
no_jobs_found: Nenhuma tarefa encontrada.
|
30
|
+
retry:
|
31
|
+
notice: O lote foi tentado novamente
|
27
32
|
show:
|
28
33
|
attributes: Atributos
|
29
34
|
batched_jobs: Tarefas em Lote
|
data/config/locales/ru.yml
CHANGED
@@ -9,6 +9,9 @@ ru:
|
|
9
9
|
reschedule: Перенести
|
10
10
|
retry: Повторить попытку
|
11
11
|
batches:
|
12
|
+
actions:
|
13
|
+
confirm_retry: Вы уверены, что хотите повторить эту группу заданий?
|
14
|
+
retry: Повторить группу заданий
|
12
15
|
index:
|
13
16
|
older_batches: Старые группы заданий
|
14
17
|
title: Группы заданий
|
@@ -24,6 +27,8 @@ ru:
|
|
24
27
|
retry: Повторить задание
|
25
28
|
title: Действия
|
26
29
|
no_jobs_found: Заданий не найдено
|
30
|
+
retry:
|
31
|
+
notice: Группа заданий была повторена
|
27
32
|
show:
|
28
33
|
attributes: Атрибуты
|
29
34
|
batched_jobs: Группы заданий
|
data/config/locales/tr.yml
CHANGED
@@ -9,6 +9,9 @@ tr:
|
|
9
9
|
reschedule: Yeniden planla
|
10
10
|
retry: Tekrar dene
|
11
11
|
batches:
|
12
|
+
actions:
|
13
|
+
confirm_retry: Bu grubu yeniden denemek istediğinizden emin misiniz?
|
14
|
+
retry: Grubu yeniden dene
|
12
15
|
index:
|
13
16
|
older_batches: Daha eski toplu işlemler
|
14
17
|
title: Toplu İşlemler
|
@@ -24,6 +27,8 @@ tr:
|
|
24
27
|
retry: İşi Tekrar Dene
|
25
28
|
title: İşlemler
|
26
29
|
no_jobs_found: İş bulunamadı.
|
30
|
+
retry:
|
31
|
+
notice: Grup yeniden denendi
|
27
32
|
show:
|
28
33
|
attributes: Özellikler
|
29
34
|
batched_jobs: Toplu İşlenmiş İşler
|
data/config/locales/uk.yml
CHANGED
@@ -9,6 +9,9 @@ uk:
|
|
9
9
|
reschedule: Перепланувати
|
10
10
|
retry: Повторити
|
11
11
|
batches:
|
12
|
+
actions:
|
13
|
+
confirm_retry: Ви впевнені, що хочете повторити цю групу завдань?
|
14
|
+
retry: Повторити групу завдань
|
12
15
|
index:
|
13
16
|
older_batches: Старі пакети
|
14
17
|
title: Пакети
|
@@ -24,6 +27,8 @@ uk:
|
|
24
27
|
retry: Повторити задачу
|
25
28
|
title: Дії
|
26
29
|
no_jobs_found: Задачі не знайдені.
|
30
|
+
retry:
|
31
|
+
notice: Групу завдань було повторено
|
27
32
|
show:
|
28
33
|
attributes: Атрибути
|
29
34
|
batched_jobs: Задачі в пакеті
|
@@ -256,7 +261,7 @@ uk:
|
|
256
261
|
queue_name: Назва черги
|
257
262
|
search: Пошук
|
258
263
|
navbar:
|
259
|
-
batches:
|
264
|
+
batches: Пакети
|
260
265
|
cron_schedules: Cron
|
261
266
|
jobs: Задачі
|
262
267
|
live_poll: Живе Опитування
|