pgbus 0.19.3 → 0.20.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/CHANGELOG.md +8 -0
- data/README.md +104 -9
- data/Rakefile +6 -1
- data/app/controllers/pgbus/dashboard_controller.rb +2 -0
- data/app/controllers/pgbus/workflow_definitions_controller.rb +28 -0
- data/app/controllers/pgbus/workflows_controller.rb +197 -0
- data/app/frontend/pgbus/modules/charts.js +130 -4
- data/app/frontend/pgbus/modules/charts.min.js +1 -1
- data/app/frontend/pgbus/modules/charts.min.js.map +1 -1
- data/app/frontend/pgbus/style.css +1 -1
- data/app/helpers/pgbus/button_helper.rb +4 -2
- data/app/helpers/pgbus/workflow_insights_helper.rb +129 -0
- data/app/helpers/pgbus/workflows_helper.rb +165 -0
- data/app/models/pgbus/workflow_entry.rb +172 -0
- data/app/models/pgbus/workflow_event.rb +43 -0
- data/app/models/pgbus/workflow_signal.rb +77 -0
- data/app/models/pgbus/workflow_step.rb +142 -0
- data/app/views/layouts/pgbus/application.html.erb +2 -0
- data/app/views/pgbus/dashboard/_stats_cards.html.erb +17 -0
- data/app/views/pgbus/workflows/_actions.html.erb +59 -0
- data/app/views/pgbus/workflows/_events_table.html.erb +24 -0
- data/app/views/pgbus/workflows/_filters.html.erb +29 -0
- data/app/views/pgbus/workflows/_signal_form.html.erb +31 -0
- data/app/views/pgbus/workflows/_signals_table.html.erb +40 -0
- data/app/views/pgbus/workflows/_status_filter.html.erb +12 -0
- data/app/views/pgbus/workflows/_steps_table.html.erb +79 -0
- data/app/views/pgbus/workflows/_timeline.html.erb +39 -0
- data/app/views/pgbus/workflows/_workflows_table.html.erb +59 -0
- data/app/views/pgbus/workflows/attention.html.erb +88 -0
- data/app/views/pgbus/workflows/definitions/_by_revision.html.erb +52 -0
- data/app/views/pgbus/workflows/definitions/_duration_table.html.erb +18 -0
- data/app/views/pgbus/workflows/definitions/_funnel.html.erb +49 -0
- data/app/views/pgbus/workflows/definitions/_pipeline.html.erb +16 -0
- data/app/views/pgbus/workflows/definitions/_step_card.html.erb +31 -0
- data/app/views/pgbus/workflows/definitions/_throughput_table.html.erb +32 -0
- data/app/views/pgbus/workflows/definitions/_window.html.erb +17 -0
- data/app/views/pgbus/workflows/definitions/index.html.erb +71 -0
- data/app/views/pgbus/workflows/definitions/not_found.html.erb +5 -0
- data/app/views/pgbus/workflows/definitions/show.html.erb +80 -0
- data/app/views/pgbus/workflows/index.html.erb +15 -0
- data/app/views/pgbus/workflows/not_found.html.erb +5 -0
- data/app/views/pgbus/workflows/show.html.erb +93 -0
- data/config/i18n-tasks.yml +6 -0
- data/config/locales/da.yml +442 -0
- data/config/locales/de.yml +442 -0
- data/config/locales/en.yml +442 -0
- data/config/locales/es.yml +442 -0
- data/config/locales/fi.yml +442 -0
- data/config/locales/fr.yml +442 -0
- data/config/locales/it.yml +442 -0
- data/config/locales/ja.yml +442 -0
- data/config/locales/nb.yml +442 -0
- data/config/locales/nl.yml +442 -0
- data/config/locales/pt.yml +442 -0
- data/config/locales/sv.yml +442 -0
- data/config/routes.rb +26 -0
- data/lib/generators/pgbus/add_workflow_signals_generator.rb +56 -0
- data/lib/generators/pgbus/add_workflows_generator.rb +54 -0
- data/lib/generators/pgbus/templates/add_workflow_signals.rb.erb +51 -0
- data/lib/generators/pgbus/templates/add_workflows.rb.erb +150 -0
- data/lib/generators/pgbus/templates/migration.rb.erb +127 -0
- data/lib/pgbus/active_job/adapter.rb +67 -26
- data/lib/pgbus/active_job/batch_id.rb +23 -1
- data/lib/pgbus/active_job/delivery.rb +49 -0
- data/lib/pgbus/active_job/executor.rb +3 -1
- data/lib/pgbus/batch/builder.rb +1 -0
- data/lib/pgbus/batch.rb +35 -3
- data/lib/pgbus/configuration/workflow_settings.rb +99 -0
- data/lib/pgbus/configuration.rb +21 -3
- data/lib/pgbus/generators/migration_detector.rb +40 -0
- data/lib/pgbus/instrumentation.rb +32 -0
- data/lib/pgbus/integrations/appsignal/dashboard.json +128 -1
- data/lib/pgbus/integrations/appsignal/event_span.rb +43 -0
- data/lib/pgbus/integrations/appsignal/job_span.rb +47 -0
- data/lib/pgbus/integrations/appsignal/span_subscriber.rb +128 -0
- data/lib/pgbus/integrations/appsignal/subscriber.rb +50 -100
- data/lib/pgbus/mcp/rack_app.rb +7 -2
- data/lib/pgbus/mcp/runner.rb +2 -1
- data/lib/pgbus/mcp/serialization.rb +25 -0
- data/lib/pgbus/mcp/server.rb +53 -10
- data/lib/pgbus/mcp/tools/deploy_tasks_tool.rb +1 -10
- data/lib/pgbus/mcp/tools/workflow_cancel_tool.rb +23 -0
- data/lib/pgbus/mcp/tools/workflow_definitions_tool.rb +36 -0
- data/lib/pgbus/mcp/tools/workflow_detail_tool.rb +38 -0
- data/lib/pgbus/mcp/tools/workflow_resume_at_tool.rb +32 -0
- data/lib/pgbus/mcp/tools/workflow_resume_tool.rb +24 -0
- data/lib/pgbus/mcp/tools/workflow_run_now_tool.rb +23 -0
- data/lib/pgbus/mcp/tools/workflow_signal_tool.rb +77 -0
- data/lib/pgbus/mcp/tools/workflow_skip_step_tool.rb +23 -0
- data/lib/pgbus/mcp/tools/workflow_stats_tool.rb +42 -0
- data/lib/pgbus/mcp/tools/workflows_attention_tool.rb +42 -0
- data/lib/pgbus/mcp/tools/workflows_tool.rb +60 -0
- data/lib/pgbus/mcp/workflow_insights_payload.rb +15 -0
- data/lib/pgbus/mcp/workflow_payloads.rb +53 -0
- data/lib/pgbus/mcp/write_tool.rb +134 -0
- data/lib/pgbus/mcp.rb +15 -0
- data/lib/pgbus/metrics/backends/statsd.rb +6 -0
- data/lib/pgbus/metrics/subscriber.rb +14 -1
- data/lib/pgbus/metrics/workflow_metrics.rb +65 -0
- data/lib/pgbus/process/dispatcher.rb +26 -0
- data/lib/pgbus/version.rb +1 -1
- data/lib/pgbus/web/data_source/workflow_actions.rb +109 -0
- data/lib/pgbus/web/data_source/workflow_insights.rb +99 -0
- data/lib/pgbus/web/data_source/workflow_list.rb +248 -0
- data/lib/pgbus/web/data_source.rb +3 -0
- data/lib/pgbus/web/workflow_action_plan.rb +62 -0
- data/lib/pgbus/web/workflow_insights_queries.rb +250 -0
- data/lib/pgbus/web/workflow_insights_report.rb +171 -0
- data/lib/pgbus/web/workflow_payload.rb +36 -0
- data/lib/pgbus/web/workflow_query.rb +82 -0
- data/lib/pgbus/web/workflow_state.rb +76 -0
- data/lib/pgbus/web/workflow_timeline.rb +113 -0
- data/lib/pgbus/web/workflow_window.rb +51 -0
- data/lib/pgbus/workflow/batch_finished_job.rb +21 -0
- data/lib/pgbus/workflow/dsl.rb +105 -0
- data/lib/pgbus/workflow/error_capture.rb +63 -0
- data/lib/pgbus/workflow/exception_policy.rb +170 -0
- data/lib/pgbus/workflow/fan_out.rb +157 -0
- data/lib/pgbus/workflow/fan_out_definition.rb +41 -0
- data/lib/pgbus/workflow/flow_control.rb +94 -0
- data/lib/pgbus/workflow/instance.rb +183 -0
- data/lib/pgbus/workflow/outside_verbs.rb +138 -0
- data/lib/pgbus/workflow/payload.rb +53 -0
- data/lib/pgbus/workflow/registry.rb +53 -0
- data/lib/pgbus/workflow/removed_step.rb +14 -0
- data/lib/pgbus/workflow/runner.rb +218 -0
- data/lib/pgbus/workflow/signal_matcher.rb +53 -0
- data/lib/pgbus/workflow/signals.rb +132 -0
- data/lib/pgbus/workflow/states.rb +119 -0
- data/lib/pgbus/workflow/step_context.rb +58 -0
- data/lib/pgbus/workflow/step_definition.rb +131 -0
- data/lib/pgbus/workflow/step_execution.rb +242 -0
- data/lib/pgbus/workflow/step_job.rb +28 -0
- data/lib/pgbus/workflow/step_outcome.rb +151 -0
- data/lib/pgbus/workflow/steps.rb +103 -0
- data/lib/pgbus/workflow/sweep.rb +156 -0
- data/lib/pgbus/workflow/test_helpers.rb +152 -0
- data/lib/pgbus/workflow/wait_timeout.rb +73 -0
- data/lib/pgbus/workflow/waiting.rb +82 -0
- data/lib/pgbus/workflow.rb +183 -0
- data/sig/pgbus/configuration.rbs +22 -0
- metadata +95 -1
data/config/locales/da.yml
CHANGED
|
@@ -140,6 +140,11 @@ da:
|
|
|
140
140
|
throughput: Gennemløb
|
|
141
141
|
throughput_detail: job/min de seneste %{minutes} min
|
|
142
142
|
throughput_unavailable: kræver jobstatistik (rails g pgbus:add_job_stats)
|
|
143
|
+
workflows: Workflows
|
|
144
|
+
workflows_attention:
|
|
145
|
+
one: "%{count} kræver opmærksomhed"
|
|
146
|
+
other: "%{count} kræver opmærksomhed"
|
|
147
|
+
workflows_detail: i gang (%{paused} sat på pause)
|
|
143
148
|
verdict:
|
|
144
149
|
links:
|
|
145
150
|
dlq: Dead letters
|
|
@@ -723,6 +728,7 @@ da:
|
|
|
723
728
|
processes: Processer
|
|
724
729
|
queues: Køer
|
|
725
730
|
recurring: Gentagende
|
|
731
|
+
workflows: Workflows
|
|
726
732
|
return_to_app: Tilbage til app
|
|
727
733
|
title: Pgbus Dashboard
|
|
728
734
|
toggle_dark_mode: Skift til mørk tilstand
|
|
@@ -1023,3 +1029,439 @@ da:
|
|
|
1023
1029
|
disabled: Opgave deaktiveret
|
|
1024
1030
|
enabled: Opgave aktiveret
|
|
1025
1031
|
failed: Kunne ikke ændre opgave
|
|
1032
|
+
workflow_insights:
|
|
1033
|
+
back_to_classes: Alle workflow-klasser
|
|
1034
|
+
back_to_runs: Alle workflow-kørsler
|
|
1035
|
+
bad_request: 'Ugyldig forespørgsel: %{reason}'
|
|
1036
|
+
capped: 'Begrænset til workflow_retention (%{retention}): færdige og annullerede kørsler, der er ældre, slettes.'
|
|
1037
|
+
few_samples:
|
|
1038
|
+
one: n=%{count}, få målinger
|
|
1039
|
+
other: n=%{count}, få målinger
|
|
1040
|
+
index:
|
|
1041
|
+
description: 'Hvordan hver workflow-klasse klarede sig over %{window}: kørslerne i gang nu, kørslerne der sluttede, og hvor lang tid en kørsel tager fra start til slut.'
|
|
1042
|
+
empty_hint: 'Definér en underklasse af Pgbus::Workflow og start en kørsel: YourWorkflow.start!(subject, **arguments).'
|
|
1043
|
+
empty_title: Ingen workflow-klasse har kørt endnu.
|
|
1044
|
+
headers:
|
|
1045
|
+
attention: Kræver handling
|
|
1046
|
+
cancelled: Annullerede
|
|
1047
|
+
duration_p50: Varighed p50
|
|
1048
|
+
duration_p95: Varighed p95
|
|
1049
|
+
finished: Færdige
|
|
1050
|
+
ongoing: Igangværende
|
|
1051
|
+
paused: Pausede
|
|
1052
|
+
workflow_class: Workflow-klasse
|
|
1053
|
+
title: Workflow-indsigt
|
|
1054
|
+
links:
|
|
1055
|
+
at_step: "%{status} kørsler ved %{step}"
|
|
1056
|
+
attention: kørsler af %{workflow}, der kræver handling
|
|
1057
|
+
cancelled: kørsler af %{workflow}, der blev annulleret i vinduet
|
|
1058
|
+
cancelled_bucket: kørsler annulleret i perioden
|
|
1059
|
+
finished: kørsler af %{workflow}, der blev færdige i vinduet
|
|
1060
|
+
finished_bucket: kørsler færdige i perioden
|
|
1061
|
+
ongoing: igangværende kørsler af %{workflow}
|
|
1062
|
+
paused: pausede kørsler af %{workflow}
|
|
1063
|
+
started: kørsler af %{workflow}, der startede i vinduet
|
|
1064
|
+
started_bucket: kørsler startet i perioden
|
|
1065
|
+
not_found:
|
|
1066
|
+
hint: Ingen underklasse af Pgbus::Workflow og ingen kørsel hedder %{workflow} (eller læsningen fejlede, se loggen).
|
|
1067
|
+
title: Ukendt workflow-klasse
|
|
1068
|
+
not_loaded: Definitionen er ikke indlæst
|
|
1069
|
+
not_loaded_hint: 'Klassen indlæses ikke længere i appen: trinene kommer fra kørslernes rækker, i den rækkefølge kørslerne nåede dem.'
|
|
1070
|
+
percentile: "%{name} %{value}"
|
|
1071
|
+
removed_in_flight:
|
|
1072
|
+
one: "%{count} kørsel på fjernet trin %{step}"
|
|
1073
|
+
other: "%{count} kørsler på fjernet trin %{step}"
|
|
1074
|
+
show:
|
|
1075
|
+
by_revision:
|
|
1076
|
+
all_steps: Alle trin
|
|
1077
|
+
caption: 'De samme tal for de seneste fem app-versioner, der afsluttede et forsøg i vinduet, nyeste først: en forringelse efter en udrulning ses som en række.'
|
|
1078
|
+
empty: Intet forsøg i dette vindue registrerede en app-version (config.app_revision).
|
|
1079
|
+
headers:
|
|
1080
|
+
attempts: Forsøg
|
|
1081
|
+
failed: Fejlet
|
|
1082
|
+
reattempted: Forsøgt igen
|
|
1083
|
+
revision: Version
|
|
1084
|
+
run_time: Køretid
|
|
1085
|
+
skipped: Sprunget over
|
|
1086
|
+
step: Trin
|
|
1087
|
+
seen_html: set %{from} til %{to}
|
|
1088
|
+
title: Pr. app-version
|
|
1089
|
+
worse: op fra %{rate} på %{revision}
|
|
1090
|
+
charts:
|
|
1091
|
+
durations:
|
|
1092
|
+
between: "%{from}–%{to}"
|
|
1093
|
+
caption:
|
|
1094
|
+
one: Hvor lang tid den %{count} kørsel, der blev færdig i vinduet, tog fra start til slut.
|
|
1095
|
+
other: Hvor lang tid de %{count} kørsler, der blev færdige i vinduet, tog fra start til slut.
|
|
1096
|
+
headers:
|
|
1097
|
+
range: Varighed
|
|
1098
|
+
runs: Kørsler
|
|
1099
|
+
over: "%{from} eller mere"
|
|
1100
|
+
title: Varighed fra start til slut
|
|
1101
|
+
under: under %{to}
|
|
1102
|
+
series:
|
|
1103
|
+
cancelled: Annullerede
|
|
1104
|
+
finished: Færdige
|
|
1105
|
+
runs: Kørsler
|
|
1106
|
+
started: Startet
|
|
1107
|
+
throughput:
|
|
1108
|
+
caption: 'Kørsler startet, færdige og annulleret pr. %{bucket} over %{window}: %{started} startet, %{finished} færdige, %{cancelled} annulleret.'
|
|
1109
|
+
headers:
|
|
1110
|
+
cancelled: Annullerede
|
|
1111
|
+
finished: Færdige
|
|
1112
|
+
from: Fra
|
|
1113
|
+
started: Startet
|
|
1114
|
+
title: Kørsler pr. %{bucket}
|
|
1115
|
+
description: 'Over %{window}: hvor kørslerne er nu, hvordan hvert trin klarer sig, og hvor kørsler stopper.'
|
|
1116
|
+
funnel:
|
|
1117
|
+
caption:
|
|
1118
|
+
one: 'Af den %{count} kørsel, der startede i vinduet: hvor mange der nåede hvert trin, og hvor den er nu.'
|
|
1119
|
+
other: 'Af de %{count} kørsler, der startede i vinduet: hvor mange der nåede hvert trin, og hvor hver enkelt er nu.'
|
|
1120
|
+
empty: Ingen kørsel startede i dette vindue.
|
|
1121
|
+
headers:
|
|
1122
|
+
now_here: Nu ved trinnet
|
|
1123
|
+
reached: Nået
|
|
1124
|
+
share: Af startede
|
|
1125
|
+
step: Trin
|
|
1126
|
+
here:
|
|
1127
|
+
cancelled:
|
|
1128
|
+
one: "%{count} annulleret"
|
|
1129
|
+
other: "%{count} annulleret"
|
|
1130
|
+
finished:
|
|
1131
|
+
one: "%{count} færdig"
|
|
1132
|
+
other: "%{count} færdige"
|
|
1133
|
+
paused:
|
|
1134
|
+
one: "%{count} pauset"
|
|
1135
|
+
other: "%{count} pauset"
|
|
1136
|
+
performing:
|
|
1137
|
+
one: "%{count} kører"
|
|
1138
|
+
other: "%{count} kører"
|
|
1139
|
+
ready:
|
|
1140
|
+
one: "%{count} planlagt"
|
|
1141
|
+
other: "%{count} planlagt"
|
|
1142
|
+
waiting:
|
|
1143
|
+
one: "%{count} venter"
|
|
1144
|
+
other: "%{count} venter"
|
|
1145
|
+
title: Tragt
|
|
1146
|
+
pipeline:
|
|
1147
|
+
attempts:
|
|
1148
|
+
one: "%{count} forsøg"
|
|
1149
|
+
other: "%{count} forsøg"
|
|
1150
|
+
caption: 'Hvert trin i rækkefølge: kørslerne der står ved det nu, og hvordan dets forsøg, der sluttede i vinduet, gik.'
|
|
1151
|
+
empty: 'Ingen trin endnu: ingen kørsel af klassen har et trin i vinduet, og ingen er i gang.'
|
|
1152
|
+
failed: Fejlet
|
|
1153
|
+
kinds:
|
|
1154
|
+
fan_out: Fan-out
|
|
1155
|
+
removed: Fjernet
|
|
1156
|
+
signal: Venter på et signal
|
|
1157
|
+
undeclared: Ikke i definitionen
|
|
1158
|
+
live:
|
|
1159
|
+
paused: Pauset
|
|
1160
|
+
performing: Kører
|
|
1161
|
+
ready: Planlagt
|
|
1162
|
+
waiting: Venter
|
|
1163
|
+
now_label: Kørsler ved trinnet nu
|
|
1164
|
+
pickup: Afhentning
|
|
1165
|
+
reattempted: Forsøgt igen
|
|
1166
|
+
run_time: Køretid
|
|
1167
|
+
skipped: Sprunget over
|
|
1168
|
+
step_link: Igangværende kørsler ved %{step}
|
|
1169
|
+
title: Pipeline
|
|
1170
|
+
window_label: Forsøg der sluttede i vinduet
|
|
1171
|
+
summary:
|
|
1172
|
+
attention: Kræver handling
|
|
1173
|
+
cancelled: Annullerede
|
|
1174
|
+
duration: Varighed p50
|
|
1175
|
+
finished: Færdige
|
|
1176
|
+
ongoing: Igangværende
|
|
1177
|
+
started: Startet
|
|
1178
|
+
window_label: Tidsvindue
|
|
1179
|
+
windows:
|
|
1180
|
+
1h: den seneste time
|
|
1181
|
+
24h: de seneste 24 timer
|
|
1182
|
+
30d: de seneste 30 dage
|
|
1183
|
+
7d: de seneste 7 dage
|
|
1184
|
+
workflows:
|
|
1185
|
+
actions:
|
|
1186
|
+
bulk_cancel: Annullér alle
|
|
1187
|
+
bulk_resume: Genoptag alle
|
|
1188
|
+
cancel: Annullér
|
|
1189
|
+
rerun: Kør igen
|
|
1190
|
+
resume: Genoptag
|
|
1191
|
+
resume_at: Genoptag ved trin
|
|
1192
|
+
run_now: Kør nu
|
|
1193
|
+
signal: Send signal
|
|
1194
|
+
skip_step: Spring trin over
|
|
1195
|
+
attempt: forsøg %{attempt}
|
|
1196
|
+
attention:
|
|
1197
|
+
at_step_html: ved %{step}
|
|
1198
|
+
back: "← Workflows"
|
|
1199
|
+
cancel_all:
|
|
1200
|
+
one: Annullér alle %{count}
|
|
1201
|
+
other: Annullér alle %{count}
|
|
1202
|
+
confirm:
|
|
1203
|
+
cancel:
|
|
1204
|
+
one: Annullér kørslen, der sidder fast ved %{step}?
|
|
1205
|
+
other: Annullér alle %{count} kørsler, der sidder fast ved %{step}?
|
|
1206
|
+
cancel_error:
|
|
1207
|
+
one: Annullér kørslen, der sidder fast ved %{step} pga. %{error}?
|
|
1208
|
+
other: Annullér alle %{count} kørsler, der sidder fast ved %{step} pga. %{error}?
|
|
1209
|
+
resume:
|
|
1210
|
+
one: Genoptag kørslen, der er sat på pause ved %{step}?
|
|
1211
|
+
other: Genoptag alle %{count} kørsler, der er sat på pause ved %{step}?
|
|
1212
|
+
resume_error:
|
|
1213
|
+
one: Genoptag kørslen, der er sat på pause ved %{step} pga. %{error}?
|
|
1214
|
+
other: Genoptag alle %{count} kørsler, der er sat på pause ved %{step} pga. %{error}?
|
|
1215
|
+
description: Igangværende kørsler, der venter på et menneske, grupperet efter hvad der stoppede dem. Når årsagen er rettet, handl på hele gruppen.
|
|
1216
|
+
empty_hint: Ingen igangværende kørsel er på pause, gået i stå, forsinket eller har ventet længere end workflow_waiting_visibility_threshold.
|
|
1217
|
+
empty_title: Intet kræver opmærksomhed.
|
|
1218
|
+
first_seen_html: første gang %{time}
|
|
1219
|
+
headers:
|
|
1220
|
+
actions: Handlinger
|
|
1221
|
+
reason: Årsag
|
|
1222
|
+
runs: Kørsler
|
|
1223
|
+
seen: Set
|
|
1224
|
+
workflow: Workflow
|
|
1225
|
+
last_seen_html: senest %{time}
|
|
1226
|
+
only_class_html: Kun %{workflow}.
|
|
1227
|
+
reasons:
|
|
1228
|
+
overdue: 'Forsinket: forfalden, men ikke hentet'
|
|
1229
|
+
paused_error: På pause pga. en fejl
|
|
1230
|
+
paused_manual: Sat på pause manuelt
|
|
1231
|
+
stalled: 'Gået i stå: dens worker svarer ikke længere'
|
|
1232
|
+
waiting_overdue: Venter for længe
|
|
1233
|
+
resume_all:
|
|
1234
|
+
one: Genoptag alle %{count}
|
|
1235
|
+
other: Genoptag alle %{count}
|
|
1236
|
+
show_all: Vis alle klasser
|
|
1237
|
+
show_runs: Vis kørsler
|
|
1238
|
+
title: Kræver opmærksomhed
|
|
1239
|
+
audit:
|
|
1240
|
+
by: "%{event} af %{actor}"
|
|
1241
|
+
empty: Ingen hændelser registreret.
|
|
1242
|
+
headers:
|
|
1243
|
+
what: Hvad skete der
|
|
1244
|
+
when: Hvornår
|
|
1245
|
+
title: Revisionslog
|
|
1246
|
+
with_reason: "%{sentence}: %{reason}"
|
|
1247
|
+
with_step: "%{sentence} (%{step} #%{attempt})"
|
|
1248
|
+
bad_request: 'Ugyldig forespørgsel: %{reason}'
|
|
1249
|
+
confirm:
|
|
1250
|
+
cancel: Annullér denne workflow? Dens åbne trin annulleres, og den kører ikke igen.
|
|
1251
|
+
rerun: Start denne workflow igen som en ny kørsel med samme emne og argumenter?
|
|
1252
|
+
resume: Genoptag denne workflow?
|
|
1253
|
+
resume_at: Genoptag denne workflow ved det valgte trin? Dens åbne trin annulleres først.
|
|
1254
|
+
run_now: Kør det planlagte trin nu i stedet for at vente?
|
|
1255
|
+
signal: Send dette signal til workflowen?
|
|
1256
|
+
skip_step: Spring det trin over, som denne workflow venter på, og gå til det næste?
|
|
1257
|
+
events:
|
|
1258
|
+
cancelled: Annulleret
|
|
1259
|
+
fan_out_finished: Fan-out afsluttet
|
|
1260
|
+
fan_out_opened: Fan-out åbnet
|
|
1261
|
+
finished: Afsluttet
|
|
1262
|
+
late_completion_ignored: Sen fuldførelse ignoreret
|
|
1263
|
+
paused: På pause
|
|
1264
|
+
rerun: Kørt igen
|
|
1265
|
+
rescheduled: Omplanlagt
|
|
1266
|
+
resumed: Genoptaget
|
|
1267
|
+
run_now: Kør nu
|
|
1268
|
+
signal_claimed: Signal taget
|
|
1269
|
+
signal_received: Signal modtaget
|
|
1270
|
+
stall_detected: Gennemløbsstop registreret
|
|
1271
|
+
started: Startet
|
|
1272
|
+
step_completed: Trin fuldført
|
|
1273
|
+
step_failed: Trin mislykkedes
|
|
1274
|
+
step_reattempted: Trin forsøgt igen
|
|
1275
|
+
step_scheduled: Trin planlagt
|
|
1276
|
+
step_skipped: Trin sprunget over
|
|
1277
|
+
step_started: Trin startet
|
|
1278
|
+
step_waiting: Trin venter
|
|
1279
|
+
wait_timed_out: Ventetid udløbet
|
|
1280
|
+
filters:
|
|
1281
|
+
apply: Anvend filtre
|
|
1282
|
+
clear: Ryd
|
|
1283
|
+
created_from: Oprettet fra
|
|
1284
|
+
created_to: Oprettet til
|
|
1285
|
+
ended_from: Afsluttet fra
|
|
1286
|
+
ended_to: Afsluttet til
|
|
1287
|
+
error_class: Fejlklasse
|
|
1288
|
+
step: Nuværende trin
|
|
1289
|
+
subject_id: Emne-ID
|
|
1290
|
+
subject_type: Emnetype
|
|
1291
|
+
workflow_class: Workflow-klasse
|
|
1292
|
+
workflow_id: Workflow-ID
|
|
1293
|
+
flash:
|
|
1294
|
+
bad_group: Den gruppe er ikke gyldig.
|
|
1295
|
+
bulk_cancel:
|
|
1296
|
+
one: Annullerede %{count}.
|
|
1297
|
+
other: Annullerede %{count}.
|
|
1298
|
+
bulk_cancel_skipped: Annullerede %{count}; %{skipped} var allerede kørt videre.
|
|
1299
|
+
bulk_failed: "%{count} kunne ikke ændres: %{reason}"
|
|
1300
|
+
bulk_more: 'Der kan vente flere kørsler: tryk igen for de næste %{cap}.'
|
|
1301
|
+
bulk_resume:
|
|
1302
|
+
one: Genoptog %{count}.
|
|
1303
|
+
other: Genoptog %{count}.
|
|
1304
|
+
bulk_resume_skipped: Genoptog %{count}; %{skipped} var allerede kørt videre.
|
|
1305
|
+
cancel: Workflow annulleret.
|
|
1306
|
+
choose_step: Vælg et trin at genoptage ved.
|
|
1307
|
+
failed:
|
|
1308
|
+
not_allowed: 'Ikke udført: kørslen er nu %{status}.'
|
|
1309
|
+
not_found: Den workflow findes ikke længere.
|
|
1310
|
+
other: "%{action} mislykkedes: %{reason}"
|
|
1311
|
+
payload_not_object: 'Ikke sendt: payload er ikke et JSON-objekt.'
|
|
1312
|
+
payload_too_large: 'Ikke sendt: payload er over %{limit} bytes.'
|
|
1313
|
+
rerun: Ny kørsel startet.
|
|
1314
|
+
resume: Workflow genoptaget.
|
|
1315
|
+
resume_at: Workflow genoptaget ved %{step}.
|
|
1316
|
+
run_now: Det planlagte trin kører nu.
|
|
1317
|
+
signal: Signalet %{name} er sendt.
|
|
1318
|
+
signal_duplicate: Signalet %{name} er allerede leveret med denne nøgle; intet nyt blev sendt.
|
|
1319
|
+
signal_name_missing: 'Ikke sendt: signalet skal have et navn.'
|
|
1320
|
+
skip_step: Trin sprunget over.
|
|
1321
|
+
headers:
|
|
1322
|
+
current_step: Nuværende trin
|
|
1323
|
+
last_activity: Seneste aktivitet
|
|
1324
|
+
started: Startet
|
|
1325
|
+
status: Status
|
|
1326
|
+
subject: Emne
|
|
1327
|
+
workflow: Workflow
|
|
1328
|
+
index:
|
|
1329
|
+
attention_link:
|
|
1330
|
+
one: Kræver opmærksomhed (%{count})
|
|
1331
|
+
other: Kræver opmærksomhed (%{count})
|
|
1332
|
+
description: 'Varige kørsler i flere trin: hvad hver enkelt gør, og hvad der sker derefter.'
|
|
1333
|
+
empty_hint: Vælg en anden status, eller ryd filtrene. En kørsel starter med YourWorkflow.start!(subject, **arguments).
|
|
1334
|
+
empty_title: Ingen workflows matcher.
|
|
1335
|
+
insights_link: Indsigt pr. klasse
|
|
1336
|
+
status_label: Filtrér efter status
|
|
1337
|
+
title: Workflows
|
|
1338
|
+
next:
|
|
1339
|
+
cancelled_html: Annulleret %{ago}.
|
|
1340
|
+
due_html: 'Klar: %{step} skulle køre %{ago} og venter på en worker.'
|
|
1341
|
+
finished_html: Afsluttet %{ago}.
|
|
1342
|
+
overdue_html: 'Forsinket: %{step} skulle køre %{ago}; oprydningen sender det igen.'
|
|
1343
|
+
paused_error_html: 'På pause ved %{step}: %{error} — genoptag eller annullér.'
|
|
1344
|
+
paused_manual_html: På pause ved %{step} — genoptag eller annullér.
|
|
1345
|
+
performing_attempt_html: Kører %{step} (forsøg %{attempt}).
|
|
1346
|
+
performing_html: Kører %{step}.
|
|
1347
|
+
ready_html: 'Klar: %{step} kører næste gang.'
|
|
1348
|
+
scheduled_html: 'Planlagt: %{step} kører %{time}.'
|
|
1349
|
+
unknown_html: 'Status: %{status}.'
|
|
1350
|
+
waiting_batch_html: Venter på batch %{batch} (%{done} af %{total} jobs færdige).
|
|
1351
|
+
waiting_signal_html: Venter på signalet %{signal} siden %{ago}.
|
|
1352
|
+
waiting_signal_timeout_html: Venter på signalet %{signal} siden %{ago}. Ventetiden udløber %{time}.
|
|
1353
|
+
waiting_step_html: Venter på %{step}.
|
|
1354
|
+
not_found:
|
|
1355
|
+
hint: Det kan være afsluttet og fjernet efter workflow_retention, eller databasen kunne ikke læses (se loggen).
|
|
1356
|
+
title: Workflow ikke fundet
|
|
1357
|
+
outcomes:
|
|
1358
|
+
cancelled: annulleret
|
|
1359
|
+
completed: fuldført
|
|
1360
|
+
finished_early: afsluttede kørslen tidligt
|
|
1361
|
+
paused: satte kørslen på pause
|
|
1362
|
+
reattempted: forsøgt igen
|
|
1363
|
+
skipped: sprunget over
|
|
1364
|
+
resume:
|
|
1365
|
+
carry_on: 'Genoptag: fortsæt med %{step}'
|
|
1366
|
+
continue: 'Genoptag: fortsæt med %{step}'
|
|
1367
|
+
finish: 'Genoptag: afslut kørslen'
|
|
1368
|
+
resend: 'Genoptag: send %{step} igen'
|
|
1369
|
+
retry: 'Genoptag: forsøg %{step} igen'
|
|
1370
|
+
rewait: 'Genoptag: vent igen på %{step}'
|
|
1371
|
+
show:
|
|
1372
|
+
actions: Handlinger
|
|
1373
|
+
arguments: Argumenter
|
|
1374
|
+
back: "← Workflows"
|
|
1375
|
+
cancelled_at: Annulleret
|
|
1376
|
+
class_missing: "%{workflow_class} er ikke indlæst i denne proces: kørslen kan stadig annulleres, men ikke genoptages."
|
|
1377
|
+
definition_outdated: 'Denne kørsel startede på en ældre definition af %{workflow_class}: dens trin er ændret siden start.'
|
|
1378
|
+
details: Detaljer
|
|
1379
|
+
finished_at: Afsluttet
|
|
1380
|
+
no_arguments: Denne kørsel har ingen argumenter.
|
|
1381
|
+
paused_at: På pause
|
|
1382
|
+
reason_hint: Registreres i revisionsloggen sammen med, hvem der gjorde det.
|
|
1383
|
+
reason_label: Årsag (valgfri)
|
|
1384
|
+
rerun_of: Genkørsel af
|
|
1385
|
+
reruns: Kørt igen som
|
|
1386
|
+
resume_at_label: Trin der genoptages ved
|
|
1387
|
+
signal:
|
|
1388
|
+
hint: Et trin, der venter på det, vågner med det samme; ellers afventer det, indtil et trin tager det.
|
|
1389
|
+
name: Signalnavn
|
|
1390
|
+
payload: Payload (JSON)
|
|
1391
|
+
send: Send signal
|
|
1392
|
+
title: Send et signal
|
|
1393
|
+
signal_statuses:
|
|
1394
|
+
claimed: Taget
|
|
1395
|
+
consumed: Brugt
|
|
1396
|
+
pending: Afventer
|
|
1397
|
+
signals:
|
|
1398
|
+
empty: Ingen signaler leveret til denne kørsel.
|
|
1399
|
+
headers:
|
|
1400
|
+
claimed: Taget
|
|
1401
|
+
consumed: Brugt
|
|
1402
|
+
idempotency_key: Idempotensnøgle
|
|
1403
|
+
name: Signal
|
|
1404
|
+
received: Modtaget
|
|
1405
|
+
status: Status
|
|
1406
|
+
payload: Payload
|
|
1407
|
+
title: Signaler
|
|
1408
|
+
statuses:
|
|
1409
|
+
cancelled: Annulleret
|
|
1410
|
+
finished: Afsluttet
|
|
1411
|
+
gone: væk
|
|
1412
|
+
paused: På pause
|
|
1413
|
+
performing: Kører
|
|
1414
|
+
ready: Klar
|
|
1415
|
+
scheduled: Planlagt
|
|
1416
|
+
waiting: Venter
|
|
1417
|
+
step_statuses:
|
|
1418
|
+
cancelled: Annulleret
|
|
1419
|
+
completed: Fuldført
|
|
1420
|
+
failed: Mislykket
|
|
1421
|
+
in_progress: Kører
|
|
1422
|
+
scheduled: Planlagt
|
|
1423
|
+
skipped: Sprunget over
|
|
1424
|
+
waiting: Venter
|
|
1425
|
+
steps:
|
|
1426
|
+
batch: batch %{batch}
|
|
1427
|
+
caused_by: Forårsaget af %{error}
|
|
1428
|
+
empty: Ingen forsøg endnu.
|
|
1429
|
+
headers:
|
|
1430
|
+
finished: Afsluttet
|
|
1431
|
+
queued: I kø
|
|
1432
|
+
ran: Kørte
|
|
1433
|
+
scheduled: Planlagt
|
|
1434
|
+
started: Startet
|
|
1435
|
+
status: Status
|
|
1436
|
+
step: Trin
|
|
1437
|
+
waited: Ventede
|
|
1438
|
+
worker: Worker
|
|
1439
|
+
revision: revision %{revision}
|
|
1440
|
+
show_backtrace: Vis backtrace
|
|
1441
|
+
title: Forsøg
|
|
1442
|
+
waiting_for: venter derefter %{duration}
|
|
1443
|
+
waits_for_html: venter på %{signal}
|
|
1444
|
+
tabs:
|
|
1445
|
+
all: Alle
|
|
1446
|
+
cancelled: Annulleret
|
|
1447
|
+
finished: Afsluttet
|
|
1448
|
+
ongoing: I gang
|
|
1449
|
+
paused: På pause
|
|
1450
|
+
performing: Kører
|
|
1451
|
+
ready: Klar
|
|
1452
|
+
waiting: Venter
|
|
1453
|
+
timeline:
|
|
1454
|
+
caption: 'Hvert forsøg, ældste øverst: ventede (dets ventetid), i kø (forfalden, endnu ikke hentet), kørte (farvet efter udfald) og venter (på et signal eller sin batch), med pauserne i en egen række. Forsøgstabellen nedenfor viser de samme varigheder.'
|
|
1455
|
+
empty: Ingen forsøg endnu.
|
|
1456
|
+
paused_period_html: Sat på pause %{from} i %{duration}
|
|
1457
|
+
paused_row: På pause
|
|
1458
|
+
series:
|
|
1459
|
+
paused: På pause
|
|
1460
|
+
queued: I kø
|
|
1461
|
+
ran_cancelled: Kørte, annulleret
|
|
1462
|
+
ran_failed: Kørte, mislykkedes
|
|
1463
|
+
ran_ok: Kørte
|
|
1464
|
+
ran_open: Kører
|
|
1465
|
+
waited: Ventede
|
|
1466
|
+
waiting: Venter
|
|
1467
|
+
title: Tidslinje
|