pgbus 0.3.1 → 0.3.3
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/Rakefile +6 -1
- data/app/models/pgbus/blocked_execution.rb +1 -1
- data/app/models/pgbus/job_lock.rb +26 -18
- data/config/locales/da.yml +16 -16
- data/config/locales/de.yml +16 -16
- data/config/locales/en.yml +15 -15
- data/config/locales/es.yml +16 -16
- data/config/locales/fi.yml +16 -16
- data/config/locales/fr.yml +16 -16
- data/config/locales/it.yml +16 -16
- data/config/locales/ja.yml +16 -16
- data/config/locales/nb.yml +16 -16
- data/config/locales/nl.yml +16 -16
- data/config/locales/pt.yml +16 -16
- data/config/locales/sv.yml +16 -16
- data/lib/pgbus/active_job/adapter.rb +9 -4
- data/lib/pgbus/active_job/executor.rb +6 -1
- data/lib/pgbus/circuit_breaker.rb +2 -2
- data/lib/pgbus/concurrency/blocked_execution.rb +3 -3
- data/lib/pgbus/concurrency/semaphore.rb +2 -2
- data/lib/pgbus/process/dispatcher.rb +21 -17
- data/lib/pgbus/process/worker.rb +3 -2
- data/lib/pgbus/recurring/schedule.rb +1 -1
- data/lib/pgbus/recurring/scheduler.rb +1 -1
- data/lib/pgbus/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cba1a8a8eaf3c351cd3c42a2af74a0355fdafd2dc26727227ee667037dfb0ed9
|
|
4
|
+
data.tar.gz: 7fea4f964087fa5fcfb7381dc449344ff156d5607d49be3b855569ce5fafb12b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 10b2ca7d95e05b23597578f7b91e52a76a450df4a30b80f38289048ad440153349388112a029c451d899a1118710e8d0e46c0453d1278f6c385f27b99299aa54
|
|
7
|
+
data.tar.gz: 51adda432c7ec2cf2977e62e37432982954e8da267e4687bc42303d690e3adda492bcb9663769259f29f419cc9ba0a2eb616993f8b78338725cdf6396ccaa9e2
|
data/Rakefile
CHANGED
|
@@ -31,7 +31,12 @@ namespace :bench do
|
|
|
31
31
|
ruby "benchmarks/memory_profile.rb"
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
-
desc "Run
|
|
34
|
+
desc "Run integration benchmarks (requires PGBUS_DATABASE_URL)"
|
|
35
|
+
task :integration do
|
|
36
|
+
ruby "benchmarks/integration_bench.rb"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
desc "Run all benchmarks (unit-level, no DB required)"
|
|
35
40
|
task all: %i[serialization client executor]
|
|
36
41
|
end
|
|
37
42
|
|
|
@@ -10,7 +10,7 @@ module Pgbus
|
|
|
10
10
|
# Atomic dequeue: DELETE the highest-priority non-expired row with FOR UPDATE SKIP LOCKED.
|
|
11
11
|
# Returns { queue_name:, payload: } or nil.
|
|
12
12
|
def self.release_next!(concurrency_key)
|
|
13
|
-
now = Time.
|
|
13
|
+
now = Time.current
|
|
14
14
|
result = connection.exec_query(
|
|
15
15
|
<<~SQL,
|
|
16
16
|
DELETE FROM pgbus_blocked_executions
|
|
@@ -16,42 +16,50 @@ module Pgbus
|
|
|
16
16
|
# Atomically try to acquire a lock.
|
|
17
17
|
# Cleans up expired locks for this key first (crash recovery at acquire time).
|
|
18
18
|
# Returns true if acquired, false if already locked.
|
|
19
|
-
|
|
19
|
+
#
|
|
20
|
+
# Uses raw SQL on the hot path to minimize ActiveRecord allocations
|
|
21
|
+
# (~29 objects vs ~304 per acquire+release cycle with AR query builder).
|
|
22
|
+
def self.acquire!(lock_key, job_class:, ttl:, job_id: nil, state: "queued", owner_pid: nil, owner_hostname: nil) # rubocop:disable Naming/PredicateMethod
|
|
23
|
+
expires_at = Time.current + ttl
|
|
24
|
+
|
|
20
25
|
# Remove any expired lock for this key inline (last-resort TTL recovery)
|
|
21
|
-
|
|
26
|
+
connection.exec_delete(
|
|
27
|
+
"DELETE FROM #{table_name} WHERE lock_key = $1 AND expires_at < $2",
|
|
28
|
+
"JobLock Expire", [lock_key, Time.current]
|
|
29
|
+
)
|
|
22
30
|
|
|
23
|
-
result =
|
|
24
|
-
{
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
expires_at: Time.current + ttl
|
|
28
|
-
},
|
|
29
|
-
unique_by: :lock_key
|
|
31
|
+
result = connection.exec_query(
|
|
32
|
+
"INSERT INTO #{table_name} (lock_key, job_class, job_id, state, owner_pid, owner_hostname, expires_at) " \
|
|
33
|
+
"VALUES ($1, $2, $3, $4, $5, $6, $7) ON CONFLICT (lock_key) DO NOTHING RETURNING id",
|
|
34
|
+
"JobLock Acquire", [lock_key, job_class, job_id, state, owner_pid, owner_hostname, expires_at]
|
|
30
35
|
)
|
|
31
36
|
result.rows.any?
|
|
32
|
-
rescue ActiveRecord::RecordNotUnique
|
|
33
|
-
false
|
|
34
37
|
end
|
|
35
38
|
|
|
36
39
|
# Transition a queued lock to executing state and claim ownership.
|
|
37
40
|
# Called when a worker starts executing a job that was locked at enqueue time.
|
|
38
41
|
def self.claim_for_execution!(lock_key, owner_pid:, owner_hostname:, ttl:)
|
|
39
|
-
|
|
40
|
-
state
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
expires_at: Time.current + ttl
|
|
42
|
+
connection.exec_update(
|
|
43
|
+
"UPDATE #{table_name} SET state = $1, owner_pid = $2, owner_hostname = $3, expires_at = $4 " \
|
|
44
|
+
"WHERE lock_key = $5",
|
|
45
|
+
"JobLock Claim", ["executing", owner_pid, owner_hostname, Time.current + ttl, lock_key]
|
|
44
46
|
)
|
|
45
47
|
end
|
|
46
48
|
|
|
47
49
|
# Release a lock by key.
|
|
48
50
|
def self.release!(lock_key)
|
|
49
|
-
|
|
51
|
+
connection.exec_delete(
|
|
52
|
+
"DELETE FROM #{table_name} WHERE lock_key = $1",
|
|
53
|
+
"JobLock Release", [lock_key]
|
|
54
|
+
)
|
|
50
55
|
end
|
|
51
56
|
|
|
52
57
|
# Check if a lock is currently held (regardless of expiry — reaper handles orphans).
|
|
53
58
|
def self.locked?(lock_key)
|
|
54
|
-
|
|
59
|
+
result = connection.select_value(
|
|
60
|
+
"SELECT 1 FROM #{table_name} WHERE lock_key = $1 LIMIT 1", "JobLock Check", [lock_key]
|
|
61
|
+
)
|
|
62
|
+
!result.nil?
|
|
55
63
|
end
|
|
56
64
|
|
|
57
65
|
# Reap orphaned locks: locks in 'executing' state whose owner_pid
|
data/config/locales/da.yml
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
da:
|
|
3
3
|
pgbus:
|
|
4
|
-
dialogs:
|
|
5
|
-
cancel: Annuller
|
|
6
|
-
confirm: Bekræft
|
|
7
|
-
confirm_title: Er du sikker?
|
|
8
|
-
delete: Slet
|
|
9
|
-
delete_title: Slet
|
|
10
|
-
ok: OK
|
|
11
4
|
dashboard:
|
|
12
5
|
processes_table:
|
|
13
6
|
empty: Ingen processer kører
|
|
@@ -90,6 +83,13 @@ da:
|
|
|
90
83
|
payload: Indhold
|
|
91
84
|
retry: Forsøg igen
|
|
92
85
|
title: 'DLQ-besked #%{id}'
|
|
86
|
+
dialogs:
|
|
87
|
+
cancel: Annuller
|
|
88
|
+
confirm: Bekræft
|
|
89
|
+
confirm_title: Er du sikker?
|
|
90
|
+
delete: Slet
|
|
91
|
+
delete_title: Slet
|
|
92
|
+
ok: OK
|
|
93
93
|
events:
|
|
94
94
|
index:
|
|
95
95
|
processed_empty: Ingen begivenheder behandlet endnu
|
|
@@ -157,6 +157,10 @@ da:
|
|
|
157
157
|
jobs:
|
|
158
158
|
enqueued_table:
|
|
159
159
|
arguments: Argumenter
|
|
160
|
+
discard: Kassér
|
|
161
|
+
discard_all: Kassér alle
|
|
162
|
+
discard_all_confirm: Kassér alle ventende jobs og frigiv deres låse? Dette kan ikke fortrydes.
|
|
163
|
+
discard_confirm: Kassér denne besked?
|
|
160
164
|
empty: Ingen job i kø
|
|
161
165
|
full_json_payload: Fuld JSON-payload
|
|
162
166
|
headers:
|
|
@@ -176,13 +180,9 @@ da:
|
|
|
176
180
|
scheduled: 'Planlagt:'
|
|
177
181
|
timezone: 'Tidszone:'
|
|
178
182
|
visible_at: 'Synlig fra:'
|
|
179
|
-
title: Job i kø
|
|
180
|
-
discard: Kassér
|
|
181
|
-
discard_confirm: Kassér denne besked?
|
|
182
|
-
discard_all: Kassér alle
|
|
183
|
-
discard_all_confirm: Kassér alle ventende jobs og frigiv deres låse? Dette kan ikke fortrydes.
|
|
184
183
|
retry: Prøv igen
|
|
185
184
|
retry_confirm: Nulstil synlighedstimeout og prøv igen?
|
|
185
|
+
title: Job i kø
|
|
186
186
|
failed_table:
|
|
187
187
|
discard: Kassér
|
|
188
188
|
discard_confirm: Kassér dette job?
|
|
@@ -282,9 +282,13 @@ da:
|
|
|
282
282
|
pid: PID
|
|
283
283
|
status: Status
|
|
284
284
|
queues:
|
|
285
|
+
destroy:
|
|
286
|
+
success: Køen %{name} slettet.
|
|
285
287
|
index:
|
|
286
288
|
title: Køer
|
|
287
289
|
queues_list:
|
|
290
|
+
delete: Slet
|
|
291
|
+
delete_confirm: Slet køen %{name} permanent? Dette kan ikke fortrydes.
|
|
288
292
|
empty: Ingen køer fundet
|
|
289
293
|
headers:
|
|
290
294
|
actions: Handlinger
|
|
@@ -294,16 +298,12 @@ da:
|
|
|
294
298
|
queue: Kø
|
|
295
299
|
total_ever: Total nogensinde
|
|
296
300
|
visible: Synlig
|
|
297
|
-
delete: Slet
|
|
298
|
-
delete_confirm: Slet køen %{name} permanent? Dette kan ikke fortrydes.
|
|
299
301
|
pause: Pause
|
|
300
302
|
pause_confirm: Pause behandling i %{name}?
|
|
301
303
|
paused: Pauset
|
|
302
304
|
purge: Rens
|
|
303
305
|
purge_confirm: Rens alle beskeder fra %{name}?
|
|
304
306
|
resume: Genoptag
|
|
305
|
-
destroy:
|
|
306
|
-
success: Køen %{name} slettet.
|
|
307
307
|
show:
|
|
308
308
|
delete_confirm: Slet denne kø permanent? Dette kan ikke fortrydes.
|
|
309
309
|
delete_queue: Slet kø
|
data/config/locales/de.yml
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
de:
|
|
3
3
|
pgbus:
|
|
4
|
-
dialogs:
|
|
5
|
-
cancel: Abbrechen
|
|
6
|
-
confirm: Bestätigen
|
|
7
|
-
confirm_title: Sind Sie sicher?
|
|
8
|
-
delete: Löschen
|
|
9
|
-
delete_title: Löschen
|
|
10
|
-
ok: OK
|
|
11
4
|
dashboard:
|
|
12
5
|
processes_table:
|
|
13
6
|
empty: Keine Prozesse laufen
|
|
@@ -90,6 +83,13 @@ de:
|
|
|
90
83
|
payload: Nutzlast
|
|
91
84
|
retry: Erneut versuchen
|
|
92
85
|
title: 'DLQ Nachricht #%{id}'
|
|
86
|
+
dialogs:
|
|
87
|
+
cancel: Abbrechen
|
|
88
|
+
confirm: Bestätigen
|
|
89
|
+
confirm_title: Sind Sie sicher?
|
|
90
|
+
delete: Löschen
|
|
91
|
+
delete_title: Löschen
|
|
92
|
+
ok: OK
|
|
93
93
|
events:
|
|
94
94
|
index:
|
|
95
95
|
processed_empty: Noch keine Ereignisse verarbeitet
|
|
@@ -157,6 +157,10 @@ de:
|
|
|
157
157
|
jobs:
|
|
158
158
|
enqueued_table:
|
|
159
159
|
arguments: Argumente
|
|
160
|
+
discard: Verwerfen
|
|
161
|
+
discard_all: Alle verwerfen
|
|
162
|
+
discard_all_confirm: Alle eingereihten Jobs verwerfen und ihre Sperren freigeben? Dies kann nicht rückgängig gemacht werden.
|
|
163
|
+
discard_confirm: Diese Nachricht verwerfen?
|
|
160
164
|
empty: Keine eingereihten Jobs
|
|
161
165
|
full_json_payload: Vollständige JSON-Nutzlast
|
|
162
166
|
headers:
|
|
@@ -176,13 +180,9 @@ de:
|
|
|
176
180
|
scheduled: 'Geplant:'
|
|
177
181
|
timezone: 'Zeitzone:'
|
|
178
182
|
visible_at: 'Sichtbar ab:'
|
|
179
|
-
title: Eingereihte Jobs
|
|
180
|
-
discard: Verwerfen
|
|
181
|
-
discard_confirm: Diese Nachricht verwerfen?
|
|
182
|
-
discard_all: Alle verwerfen
|
|
183
|
-
discard_all_confirm: Alle eingereihten Jobs verwerfen und ihre Sperren freigeben? Dies kann nicht rückgängig gemacht werden.
|
|
184
183
|
retry: Wiederholen
|
|
185
184
|
retry_confirm: Sichtbarkeits-Timeout zurücksetzen und erneut versuchen?
|
|
185
|
+
title: Eingereihte Jobs
|
|
186
186
|
failed_table:
|
|
187
187
|
discard: Verwerfen
|
|
188
188
|
discard_confirm: Diesen Job verwerfen?
|
|
@@ -282,9 +282,13 @@ de:
|
|
|
282
282
|
pid: PID
|
|
283
283
|
status: Status
|
|
284
284
|
queues:
|
|
285
|
+
destroy:
|
|
286
|
+
success: Warteschlange %{name} gelöscht.
|
|
285
287
|
index:
|
|
286
288
|
title: Warteschlangen
|
|
287
289
|
queues_list:
|
|
290
|
+
delete: Löschen
|
|
291
|
+
delete_confirm: Warteschlange %{name} dauerhaft löschen? Dies kann nicht rückgängig gemacht werden.
|
|
288
292
|
empty: Keine Warteschlangen gefunden
|
|
289
293
|
headers:
|
|
290
294
|
actions: Aktionen
|
|
@@ -294,16 +298,12 @@ de:
|
|
|
294
298
|
queue: Warteschlange
|
|
295
299
|
total_ever: Insgesamt jemals
|
|
296
300
|
visible: Sichtbar
|
|
297
|
-
delete: Löschen
|
|
298
|
-
delete_confirm: Warteschlange %{name} dauerhaft löschen? Dies kann nicht rückgängig gemacht werden.
|
|
299
301
|
pause: Pause
|
|
300
302
|
pause_confirm: Verarbeitung für %{name} pausieren?
|
|
301
303
|
paused: Pausiert
|
|
302
304
|
purge: Bereinigen
|
|
303
305
|
purge_confirm: Alle Nachrichten von %{name} löschen?
|
|
304
306
|
resume: Fortsetzen
|
|
305
|
-
destroy:
|
|
306
|
-
success: Warteschlange %{name} gelöscht.
|
|
307
307
|
show:
|
|
308
308
|
delete_confirm: Diese Warteschlange dauerhaft löschen? Dies kann nicht rückgängig gemacht werden.
|
|
309
309
|
delete_queue: Warteschlange löschen
|
data/config/locales/en.yml
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
en:
|
|
3
3
|
pgbus:
|
|
4
|
-
dialogs:
|
|
5
|
-
cancel: Cancel
|
|
6
|
-
confirm: Confirm
|
|
7
|
-
confirm_title: Are you sure?
|
|
8
|
-
delete: Delete
|
|
9
|
-
delete_title: Delete
|
|
10
|
-
ok: OK
|
|
11
4
|
dashboard:
|
|
12
5
|
processes_table:
|
|
13
6
|
empty: No processes running
|
|
@@ -90,6 +83,13 @@ en:
|
|
|
90
83
|
payload: Payload
|
|
91
84
|
retry: Retry
|
|
92
85
|
title: 'DLQ Message #%{id}'
|
|
86
|
+
dialogs:
|
|
87
|
+
cancel: Cancel
|
|
88
|
+
confirm: Confirm
|
|
89
|
+
confirm_title: Are you sure?
|
|
90
|
+
delete: Delete
|
|
91
|
+
delete_title: Delete
|
|
92
|
+
ok: OK
|
|
93
93
|
events:
|
|
94
94
|
index:
|
|
95
95
|
processed_empty: No events processed yet
|
|
@@ -173,6 +173,10 @@ en:
|
|
|
173
173
|
jobs:
|
|
174
174
|
enqueued_table:
|
|
175
175
|
arguments: Arguments
|
|
176
|
+
discard: Discard
|
|
177
|
+
discard_all: Discard All
|
|
178
|
+
discard_all_confirm: Discard all enqueued jobs and release their locks? This cannot be undone.
|
|
179
|
+
discard_confirm: Discard this message?
|
|
176
180
|
empty: No enqueued jobs
|
|
177
181
|
full_json_payload: Full JSON payload
|
|
178
182
|
headers:
|
|
@@ -192,10 +196,6 @@ en:
|
|
|
192
196
|
scheduled: 'Scheduled:'
|
|
193
197
|
timezone: 'Timezone:'
|
|
194
198
|
visible_at: 'Visible at:'
|
|
195
|
-
discard: Discard
|
|
196
|
-
discard_all: Discard All
|
|
197
|
-
discard_all_confirm: Discard all enqueued jobs and release their locks? This cannot be undone.
|
|
198
|
-
discard_confirm: Discard this message?
|
|
199
199
|
retry: Retry
|
|
200
200
|
retry_confirm: Reset visibility timeout and retry?
|
|
201
201
|
title: Enqueued Jobs
|
|
@@ -298,9 +298,13 @@ en:
|
|
|
298
298
|
pid: PID
|
|
299
299
|
status: Status
|
|
300
300
|
queues:
|
|
301
|
+
destroy:
|
|
302
|
+
success: Queue %{name} deleted.
|
|
301
303
|
index:
|
|
302
304
|
title: Queues
|
|
303
305
|
queues_list:
|
|
306
|
+
delete: Delete
|
|
307
|
+
delete_confirm: Permanently delete queue %{name}? This cannot be undone.
|
|
304
308
|
empty: No queues found
|
|
305
309
|
headers:
|
|
306
310
|
actions: Actions
|
|
@@ -310,16 +314,12 @@ en:
|
|
|
310
314
|
queue: Queue
|
|
311
315
|
total_ever: Total Ever
|
|
312
316
|
visible: Visible
|
|
313
|
-
delete: Delete
|
|
314
|
-
delete_confirm: Permanently delete queue %{name}? This cannot be undone.
|
|
315
317
|
pause: Pause
|
|
316
318
|
pause_confirm: Pause processing for %{name}?
|
|
317
319
|
paused: Paused
|
|
318
320
|
purge: Purge
|
|
319
321
|
purge_confirm: Purge all messages from %{name}?
|
|
320
322
|
resume: Resume
|
|
321
|
-
destroy:
|
|
322
|
-
success: Queue %{name} deleted.
|
|
323
323
|
show:
|
|
324
324
|
delete_confirm: Permanently delete this queue? This cannot be undone.
|
|
325
325
|
delete_queue: Delete Queue
|
data/config/locales/es.yml
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
es:
|
|
3
3
|
pgbus:
|
|
4
|
-
dialogs:
|
|
5
|
-
cancel: Cancelar
|
|
6
|
-
confirm: Confirmar
|
|
7
|
-
confirm_title: "¿Estás seguro?"
|
|
8
|
-
delete: Eliminar
|
|
9
|
-
delete_title: Eliminar
|
|
10
|
-
ok: Aceptar
|
|
11
4
|
dashboard:
|
|
12
5
|
processes_table:
|
|
13
6
|
empty: No hay procesos en ejecución
|
|
@@ -90,6 +83,13 @@ es:
|
|
|
90
83
|
payload: Carga útil
|
|
91
84
|
retry: Reintentar
|
|
92
85
|
title: 'Mensaje DLQ #%{id}'
|
|
86
|
+
dialogs:
|
|
87
|
+
cancel: Cancelar
|
|
88
|
+
confirm: Confirmar
|
|
89
|
+
confirm_title: "¿Estás seguro?"
|
|
90
|
+
delete: Eliminar
|
|
91
|
+
delete_title: Eliminar
|
|
92
|
+
ok: Aceptar
|
|
93
93
|
events:
|
|
94
94
|
index:
|
|
95
95
|
processed_empty: No se han procesado eventos aún
|
|
@@ -157,6 +157,10 @@ es:
|
|
|
157
157
|
jobs:
|
|
158
158
|
enqueued_table:
|
|
159
159
|
arguments: Argumentos
|
|
160
|
+
discard: Descartar
|
|
161
|
+
discard_all: Descartar todos
|
|
162
|
+
discard_all_confirm: "¿Descartar todos los trabajos en cola y liberar sus bloqueos? Esta acción no se puede deshacer."
|
|
163
|
+
discard_confirm: "¿Descartar este mensaje?"
|
|
160
164
|
empty: No hay trabajos en cola
|
|
161
165
|
full_json_payload: Carga JSON completa
|
|
162
166
|
headers:
|
|
@@ -176,13 +180,9 @@ es:
|
|
|
176
180
|
scheduled: 'Programado:'
|
|
177
181
|
timezone: 'Zona horaria:'
|
|
178
182
|
visible_at: 'Visible en:'
|
|
179
|
-
title: Trabajos en Cola
|
|
180
|
-
discard: Descartar
|
|
181
|
-
discard_confirm: "¿Descartar este mensaje?"
|
|
182
|
-
discard_all: Descartar todos
|
|
183
|
-
discard_all_confirm: "¿Descartar todos los trabajos en cola y liberar sus bloqueos? Esta acción no se puede deshacer."
|
|
184
183
|
retry: Reintentar
|
|
185
184
|
retry_confirm: "¿Restablecer tiempo de visibilidad y reintentar?"
|
|
185
|
+
title: Trabajos en Cola
|
|
186
186
|
failed_table:
|
|
187
187
|
discard: Descartar
|
|
188
188
|
discard_confirm: "¿Descartar este trabajo?"
|
|
@@ -282,9 +282,13 @@ es:
|
|
|
282
282
|
pid: PID
|
|
283
283
|
status: Estado
|
|
284
284
|
queues:
|
|
285
|
+
destroy:
|
|
286
|
+
success: Cola %{name} eliminada.
|
|
285
287
|
index:
|
|
286
288
|
title: Colas
|
|
287
289
|
queues_list:
|
|
290
|
+
delete: Eliminar
|
|
291
|
+
delete_confirm: "¿Eliminar permanentemente la cola %{name}? Esto no se puede deshacer."
|
|
288
292
|
empty: No se encontraron colas
|
|
289
293
|
headers:
|
|
290
294
|
actions: Acciones
|
|
@@ -294,16 +298,12 @@ es:
|
|
|
294
298
|
queue: Cola
|
|
295
299
|
total_ever: Total acumulado
|
|
296
300
|
visible: Visible
|
|
297
|
-
delete: Eliminar
|
|
298
|
-
delete_confirm: "¿Eliminar permanentemente la cola %{name}? Esto no se puede deshacer."
|
|
299
301
|
pause: Pausar
|
|
300
302
|
pause_confirm: "¿Pausar el procesamiento de %{name}?"
|
|
301
303
|
paused: Pausado
|
|
302
304
|
purge: Purgar
|
|
303
305
|
purge_confirm: "¿Purgar todos los mensajes de %{name}?"
|
|
304
306
|
resume: Reanudar
|
|
305
|
-
destroy:
|
|
306
|
-
success: Cola %{name} eliminada.
|
|
307
307
|
show:
|
|
308
308
|
delete_confirm: "¿Eliminar permanentemente esta cola? Esto no se puede deshacer."
|
|
309
309
|
delete_queue: Eliminar cola
|
data/config/locales/fi.yml
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
fi:
|
|
3
3
|
pgbus:
|
|
4
|
-
dialogs:
|
|
5
|
-
cancel: Peruuta
|
|
6
|
-
confirm: Vahvista
|
|
7
|
-
confirm_title: Oletko varma?
|
|
8
|
-
delete: Poista
|
|
9
|
-
delete_title: Poista
|
|
10
|
-
ok: OK
|
|
11
4
|
dashboard:
|
|
12
5
|
processes_table:
|
|
13
6
|
empty: Ei käynnissä olevia prosesseja
|
|
@@ -90,6 +83,13 @@ fi:
|
|
|
90
83
|
payload: Kuorma
|
|
91
84
|
retry: Yritä uudelleen
|
|
92
85
|
title: 'DLQ-viesti #%{id}'
|
|
86
|
+
dialogs:
|
|
87
|
+
cancel: Peruuta
|
|
88
|
+
confirm: Vahvista
|
|
89
|
+
confirm_title: Oletko varma?
|
|
90
|
+
delete: Poista
|
|
91
|
+
delete_title: Poista
|
|
92
|
+
ok: OK
|
|
93
93
|
events:
|
|
94
94
|
index:
|
|
95
95
|
processed_empty: Ei vielä käsiteltyjä tapahtumia
|
|
@@ -157,6 +157,10 @@ fi:
|
|
|
157
157
|
jobs:
|
|
158
158
|
enqueued_table:
|
|
159
159
|
arguments: Argumentit
|
|
160
|
+
discard: Hylkää
|
|
161
|
+
discard_all: Hylkää kaikki
|
|
162
|
+
discard_all_confirm: Hylkää kaikki jonossa olevat tehtävät ja vapauta lukot? Tätä ei voi perua.
|
|
163
|
+
discard_confirm: Hylätä tämä viesti?
|
|
160
164
|
empty: Ei jonotettuja töitä
|
|
161
165
|
full_json_payload: Täysi JSON-payload
|
|
162
166
|
headers:
|
|
@@ -176,13 +180,9 @@ fi:
|
|
|
176
180
|
scheduled: 'Aikataulutettu:'
|
|
177
181
|
timezone: 'Aikavyöhyke:'
|
|
178
182
|
visible_at: 'Näkyvissä:'
|
|
179
|
-
title: Jonotetut työt
|
|
180
|
-
discard: Hylkää
|
|
181
|
-
discard_confirm: Hylätä tämä viesti?
|
|
182
|
-
discard_all: Hylkää kaikki
|
|
183
|
-
discard_all_confirm: Hylkää kaikki jonossa olevat tehtävät ja vapauta lukot? Tätä ei voi perua.
|
|
184
183
|
retry: Yritä uudelleen
|
|
185
184
|
retry_confirm: Nollaa näkyvyysaika ja yritä uudelleen?
|
|
185
|
+
title: Jonotetut työt
|
|
186
186
|
failed_table:
|
|
187
187
|
discard: Hylkää
|
|
188
188
|
discard_confirm: Hylätäänkö tämä työ?
|
|
@@ -282,9 +282,13 @@ fi:
|
|
|
282
282
|
pid: PID
|
|
283
283
|
status: Tila
|
|
284
284
|
queues:
|
|
285
|
+
destroy:
|
|
286
|
+
success: Jono %{name} poistettu.
|
|
285
287
|
index:
|
|
286
288
|
title: Jonot
|
|
287
289
|
queues_list:
|
|
290
|
+
delete: Poista
|
|
291
|
+
delete_confirm: Poista jono %{name} pysyvästi? Tätä ei voi kumota.
|
|
288
292
|
empty: Jonot eivät löydy
|
|
289
293
|
headers:
|
|
290
294
|
actions: Toiminnot
|
|
@@ -294,16 +298,12 @@ fi:
|
|
|
294
298
|
queue: Jono
|
|
295
299
|
total_ever: Yhteensä koskaan
|
|
296
300
|
visible: Näkyvissä
|
|
297
|
-
delete: Poista
|
|
298
|
-
delete_confirm: Poista jono %{name} pysyvästi? Tätä ei voi kumota.
|
|
299
301
|
pause: Tauko
|
|
300
302
|
pause_confirm: Keskeytä käsittely %{name} ajan?
|
|
301
303
|
paused: Keskeytetty
|
|
302
304
|
purge: Tyhjennä
|
|
303
305
|
purge_confirm: Tyhjennä kaikki viestit %{name}:sta?
|
|
304
306
|
resume: Jatka
|
|
305
|
-
destroy:
|
|
306
|
-
success: Jono %{name} poistettu.
|
|
307
307
|
show:
|
|
308
308
|
delete_confirm: Poista tämä jono pysyvästi? Tätä ei voi kumota.
|
|
309
309
|
delete_queue: Poista jono
|
data/config/locales/fr.yml
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
fr:
|
|
3
3
|
pgbus:
|
|
4
|
-
dialogs:
|
|
5
|
-
cancel: Annuler
|
|
6
|
-
confirm: Confirmer
|
|
7
|
-
confirm_title: "Êtes-vous sûr ?"
|
|
8
|
-
delete: Supprimer
|
|
9
|
-
delete_title: Supprimer
|
|
10
|
-
ok: OK
|
|
11
4
|
dashboard:
|
|
12
5
|
processes_table:
|
|
13
6
|
empty: Aucun processus en cours d'exécution
|
|
@@ -90,6 +83,13 @@ fr:
|
|
|
90
83
|
payload: Charge utile
|
|
91
84
|
retry: Réessayer
|
|
92
85
|
title: Message DLQ n°%{id}
|
|
86
|
+
dialogs:
|
|
87
|
+
cancel: Annuler
|
|
88
|
+
confirm: Confirmer
|
|
89
|
+
confirm_title: Êtes-vous sûr ?
|
|
90
|
+
delete: Supprimer
|
|
91
|
+
delete_title: Supprimer
|
|
92
|
+
ok: OK
|
|
93
93
|
events:
|
|
94
94
|
index:
|
|
95
95
|
processed_empty: Aucun événement traité pour le moment
|
|
@@ -157,6 +157,10 @@ fr:
|
|
|
157
157
|
jobs:
|
|
158
158
|
enqueued_table:
|
|
159
159
|
arguments: Arguments
|
|
160
|
+
discard: Rejeter
|
|
161
|
+
discard_all: Tout supprimer
|
|
162
|
+
discard_all_confirm: Supprimer tous les travaux en file d'attente et libérer leurs verrous ? Cette action est irréversible.
|
|
163
|
+
discard_confirm: Rejeter ce message ?
|
|
160
164
|
empty: Aucun travail en file d'attente
|
|
161
165
|
full_json_payload: Charge utile JSON complète
|
|
162
166
|
headers:
|
|
@@ -176,13 +180,9 @@ fr:
|
|
|
176
180
|
scheduled: 'Planifié :'
|
|
177
181
|
timezone: 'Fuseau horaire :'
|
|
178
182
|
visible_at: 'Visible à :'
|
|
179
|
-
title: Travaux en file d'attente
|
|
180
|
-
discard: Rejeter
|
|
181
|
-
discard_confirm: Rejeter ce message ?
|
|
182
|
-
discard_all: Tout supprimer
|
|
183
|
-
discard_all_confirm: Supprimer tous les travaux en file d'attente et libérer leurs verrous ? Cette action est irréversible.
|
|
184
183
|
retry: Réessayer
|
|
185
184
|
retry_confirm: Réinitialiser le délai de visibilité et réessayer ?
|
|
185
|
+
title: Travaux en file d'attente
|
|
186
186
|
failed_table:
|
|
187
187
|
discard: Ignorer
|
|
188
188
|
discard_confirm: Ignorer ce travail ?
|
|
@@ -282,9 +282,13 @@ fr:
|
|
|
282
282
|
pid: PID
|
|
283
283
|
status: Statut
|
|
284
284
|
queues:
|
|
285
|
+
destroy:
|
|
286
|
+
success: File d'attente %{name} supprimée.
|
|
285
287
|
index:
|
|
286
288
|
title: Files d'attente
|
|
287
289
|
queues_list:
|
|
290
|
+
delete: Supprimer
|
|
291
|
+
delete_confirm: Supprimer définitivement la file d'attente %{name} ? Cette action est irréversible.
|
|
288
292
|
empty: Aucune file d'attente trouvée
|
|
289
293
|
headers:
|
|
290
294
|
actions: Actions
|
|
@@ -294,16 +298,12 @@ fr:
|
|
|
294
298
|
queue: File d'attente
|
|
295
299
|
total_ever: Total jamais
|
|
296
300
|
visible: Visible
|
|
297
|
-
delete: Supprimer
|
|
298
|
-
delete_confirm: Supprimer définitivement la file d'attente %{name} ? Cette action est irréversible.
|
|
299
301
|
pause: Pause
|
|
300
302
|
pause_confirm: Mettre en pause le traitement pour %{name} ?
|
|
301
303
|
paused: En pause
|
|
302
304
|
purge: Purger
|
|
303
305
|
purge_confirm: Purger tous les messages de %{name} ?
|
|
304
306
|
resume: Reprendre
|
|
305
|
-
destroy:
|
|
306
|
-
success: File d'attente %{name} supprimée.
|
|
307
307
|
show:
|
|
308
308
|
delete_confirm: Supprimer définitivement cette file d'attente ? Cette action est irréversible.
|
|
309
309
|
delete_queue: Supprimer la file d'attente
|
data/config/locales/it.yml
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
it:
|
|
3
3
|
pgbus:
|
|
4
|
-
dialogs:
|
|
5
|
-
cancel: Annulla
|
|
6
|
-
confirm: Conferma
|
|
7
|
-
confirm_title: Sei sicuro?
|
|
8
|
-
delete: Elimina
|
|
9
|
-
delete_title: Elimina
|
|
10
|
-
ok: OK
|
|
11
4
|
dashboard:
|
|
12
5
|
processes_table:
|
|
13
6
|
empty: Nessun processo in esecuzione
|
|
@@ -90,6 +83,13 @@ it:
|
|
|
90
83
|
payload: Payload
|
|
91
84
|
retry: Riprova
|
|
92
85
|
title: 'Messaggio DLQ #%{id}'
|
|
86
|
+
dialogs:
|
|
87
|
+
cancel: Annulla
|
|
88
|
+
confirm: Conferma
|
|
89
|
+
confirm_title: Sei sicuro?
|
|
90
|
+
delete: Elimina
|
|
91
|
+
delete_title: Elimina
|
|
92
|
+
ok: OK
|
|
93
93
|
events:
|
|
94
94
|
index:
|
|
95
95
|
processed_empty: Nessun evento elaborato ancora
|
|
@@ -157,6 +157,10 @@ it:
|
|
|
157
157
|
jobs:
|
|
158
158
|
enqueued_table:
|
|
159
159
|
arguments: Argomenti
|
|
160
|
+
discard: Scarta
|
|
161
|
+
discard_all: Scarta tutti
|
|
162
|
+
discard_all_confirm: Scartare tutti i lavori in coda e rilasciare i relativi blocchi? Questa azione non può essere annullata.
|
|
163
|
+
discard_confirm: Scartare questo messaggio?
|
|
160
164
|
empty: Nessun lavoro in coda
|
|
161
165
|
full_json_payload: Payload JSON completo
|
|
162
166
|
headers:
|
|
@@ -176,13 +180,9 @@ it:
|
|
|
176
180
|
scheduled: 'Programmato:'
|
|
177
181
|
timezone: 'Fuso orario:'
|
|
178
182
|
visible_at: 'Visibile alle:'
|
|
179
|
-
title: Lavori in coda
|
|
180
|
-
discard: Scarta
|
|
181
|
-
discard_confirm: Scartare questo messaggio?
|
|
182
|
-
discard_all: Scarta tutti
|
|
183
|
-
discard_all_confirm: Scartare tutti i lavori in coda e rilasciare i relativi blocchi? Questa azione non può essere annullata.
|
|
184
183
|
retry: Riprova
|
|
185
184
|
retry_confirm: Reimpostare il timeout di visibilità e riprovare?
|
|
185
|
+
title: Lavori in coda
|
|
186
186
|
failed_table:
|
|
187
187
|
discard: Scarta
|
|
188
188
|
discard_confirm: Scartare questo lavoro?
|
|
@@ -282,9 +282,13 @@ it:
|
|
|
282
282
|
pid: PID
|
|
283
283
|
status: Stato
|
|
284
284
|
queues:
|
|
285
|
+
destroy:
|
|
286
|
+
success: Coda %{name} eliminata.
|
|
285
287
|
index:
|
|
286
288
|
title: Code
|
|
287
289
|
queues_list:
|
|
290
|
+
delete: Elimina
|
|
291
|
+
delete_confirm: Eliminare permanentemente la coda %{name}? Questa azione non può essere annullata.
|
|
288
292
|
empty: Nessuna coda trovata
|
|
289
293
|
headers:
|
|
290
294
|
actions: Azioni
|
|
@@ -294,16 +298,12 @@ it:
|
|
|
294
298
|
queue: Coda
|
|
295
299
|
total_ever: Totale mai
|
|
296
300
|
visible: Visibile
|
|
297
|
-
delete: Elimina
|
|
298
|
-
delete_confirm: Eliminare permanentemente la coda %{name}? Questa azione non può essere annullata.
|
|
299
301
|
pause: Pausa
|
|
300
302
|
pause_confirm: Mettere in pausa l'elaborazione per %{name}?
|
|
301
303
|
paused: In pausa
|
|
302
304
|
purge: Pulisci
|
|
303
305
|
purge_confirm: Eliminare tutti i messaggi da %{name}?
|
|
304
306
|
resume: Riprendi
|
|
305
|
-
destroy:
|
|
306
|
-
success: Coda %{name} eliminata.
|
|
307
307
|
show:
|
|
308
308
|
delete_confirm: Eliminare permanentemente questa coda? Questa azione non può essere annullata.
|
|
309
309
|
delete_queue: Elimina coda
|