pgbus 0.19.4 → 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 +6 -0
- data/README.md +96 -7
- 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/delivery.rb +49 -0
- data/lib/pgbus/active_job/executor.rb +3 -1
- 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/subscriber.rb +16 -1
- 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 +92 -1
data/config/locales/es.yml
CHANGED
|
@@ -140,6 +140,11 @@ es:
|
|
|
140
140
|
throughput: Rendimiento
|
|
141
141
|
throughput_detail: trabajos/min en los últimos %{minutes} min
|
|
142
142
|
throughput_unavailable: requiere estadísticas de trabajos (rails g pgbus:add_job_stats)
|
|
143
|
+
workflows: Workflows
|
|
144
|
+
workflows_attention:
|
|
145
|
+
one: "%{count} requiere atención"
|
|
146
|
+
other: "%{count} requieren atención"
|
|
147
|
+
workflows_detail: en curso (%{paused} en pausa)
|
|
143
148
|
verdict:
|
|
144
149
|
links:
|
|
145
150
|
dlq: Mensajes muertos
|
|
@@ -723,6 +728,7 @@ es:
|
|
|
723
728
|
processes: Procesos
|
|
724
729
|
queues: Colas
|
|
725
730
|
recurring: Recurrente
|
|
731
|
+
workflows: Workflows
|
|
726
732
|
return_to_app: Volver a la app
|
|
727
733
|
title: Panel de Pgbus
|
|
728
734
|
toggle_dark_mode: Alternar modo oscuro
|
|
@@ -1023,3 +1029,439 @@ es:
|
|
|
1023
1029
|
disabled: Tarea deshabilitada
|
|
1024
1030
|
enabled: Tarea habilitada
|
|
1025
1031
|
failed: No se pudo cambiar la tarea
|
|
1032
|
+
workflow_insights:
|
|
1033
|
+
back_to_classes: Todas las clases de flujo
|
|
1034
|
+
back_to_runs: Todas las ejecuciones de flujos
|
|
1035
|
+
bad_request: 'Solicitud incorrecta: %{reason}'
|
|
1036
|
+
capped: 'Limitado a workflow_retention (%{retention}): las ejecuciones terminadas y canceladas más antiguas se eliminan.'
|
|
1037
|
+
few_samples:
|
|
1038
|
+
one: n=%{count}, pocas muestras
|
|
1039
|
+
other: n=%{count}, pocas muestras
|
|
1040
|
+
index:
|
|
1041
|
+
description: 'Cómo le fue a cada clase de flujo en %{window}: las ejecuciones en curso, las que terminaron y cuánto tarda una ejecución de principio a fin.'
|
|
1042
|
+
empty_hint: 'Define una subclase de Pgbus::Workflow e inicia una ejecución: YourWorkflow.start!(subject, **arguments).'
|
|
1043
|
+
empty_title: Ninguna clase de flujo se ha ejecutado todavía.
|
|
1044
|
+
headers:
|
|
1045
|
+
attention: Requieren atención
|
|
1046
|
+
cancelled: Canceladas
|
|
1047
|
+
duration_p50: Duración p50
|
|
1048
|
+
duration_p95: Duración p95
|
|
1049
|
+
finished: Terminadas
|
|
1050
|
+
ongoing: En curso
|
|
1051
|
+
paused: Pausadas
|
|
1052
|
+
workflow_class: Clase de flujo
|
|
1053
|
+
title: Análisis de flujos
|
|
1054
|
+
links:
|
|
1055
|
+
at_step: "%{status} ejecuciones en %{step}"
|
|
1056
|
+
attention: ejecuciones de %{workflow} que requieren atención
|
|
1057
|
+
cancelled: ejecuciones de %{workflow} canceladas en la ventana
|
|
1058
|
+
cancelled_bucket: ejecuciones canceladas en este periodo
|
|
1059
|
+
finished: ejecuciones de %{workflow} terminadas en la ventana
|
|
1060
|
+
finished_bucket: ejecuciones terminadas en este periodo
|
|
1061
|
+
ongoing: ejecuciones en curso de %{workflow}
|
|
1062
|
+
paused: ejecuciones pausadas de %{workflow}
|
|
1063
|
+
started: ejecuciones de %{workflow} iniciadas en la ventana
|
|
1064
|
+
started_bucket: ejecuciones iniciadas en este periodo
|
|
1065
|
+
not_found:
|
|
1066
|
+
hint: Ninguna subclase de Pgbus::Workflow ni ninguna ejecución se llama %{workflow} (o falló la lectura, mira el registro).
|
|
1067
|
+
title: Clase de flujo desconocida
|
|
1068
|
+
not_loaded: Definición no cargada
|
|
1069
|
+
not_loaded_hint: 'Esta clase ya no se carga en la aplicación: sus pasos vienen de las filas de sus ejecuciones, en el orden en que las ejecuciones los alcanzaron.'
|
|
1070
|
+
percentile: "%{name} %{value}"
|
|
1071
|
+
removed_in_flight:
|
|
1072
|
+
one: "%{count} ejecución en el paso eliminado %{step}"
|
|
1073
|
+
other: "%{count} ejecuciones en el paso eliminado %{step}"
|
|
1074
|
+
show:
|
|
1075
|
+
by_revision:
|
|
1076
|
+
all_steps: Todos los pasos
|
|
1077
|
+
caption: 'Las mismas cifras para las últimas cinco revisiones de la aplicación que terminaron un intento en la ventana, la más reciente primero: una regresión tras un despliegue aparece como una fila.'
|
|
1078
|
+
empty: Ningún intento en esta ventana registró una revisión de la aplicación (config.app_revision).
|
|
1079
|
+
headers:
|
|
1080
|
+
attempts: Intentos
|
|
1081
|
+
failed: Fallidos
|
|
1082
|
+
reattempted: Reintentados
|
|
1083
|
+
revision: Revisión
|
|
1084
|
+
run_time: Tiempo de ejecución
|
|
1085
|
+
skipped: Omitidos
|
|
1086
|
+
step: Paso
|
|
1087
|
+
seen_html: visto de %{from} a %{to}
|
|
1088
|
+
title: Por revisión de la aplicación
|
|
1089
|
+
worse: sube desde %{rate} en %{revision}
|
|
1090
|
+
charts:
|
|
1091
|
+
durations:
|
|
1092
|
+
between: "%{from}–%{to}"
|
|
1093
|
+
caption:
|
|
1094
|
+
one: Cuánto tardó la %{count} ejecución terminada en la ventana, de principio a fin.
|
|
1095
|
+
other: Cuánto tardaron las %{count} ejecuciones terminadas en la ventana, de principio a fin.
|
|
1096
|
+
headers:
|
|
1097
|
+
range: Duración
|
|
1098
|
+
runs: Ejecuciones
|
|
1099
|
+
over: "%{from} o más"
|
|
1100
|
+
title: Duración de principio a fin
|
|
1101
|
+
under: menos de %{to}
|
|
1102
|
+
series:
|
|
1103
|
+
cancelled: Canceladas
|
|
1104
|
+
finished: Terminadas
|
|
1105
|
+
runs: Ejecuciones
|
|
1106
|
+
started: Iniciadas
|
|
1107
|
+
throughput:
|
|
1108
|
+
caption: 'Ejecuciones iniciadas, terminadas y canceladas por %{bucket} en %{window}: %{started} iniciadas, %{finished} terminadas, %{cancelled} canceladas.'
|
|
1109
|
+
headers:
|
|
1110
|
+
cancelled: Canceladas
|
|
1111
|
+
finished: Terminadas
|
|
1112
|
+
from: Desde
|
|
1113
|
+
started: Iniciadas
|
|
1114
|
+
title: Ejecuciones por %{bucket}
|
|
1115
|
+
description: 'En %{window}: dónde están sus ejecuciones ahora, cómo rinde cada paso y dónde se detienen las ejecuciones.'
|
|
1116
|
+
funnel:
|
|
1117
|
+
caption:
|
|
1118
|
+
one: 'De la %{count} ejecución iniciada en la ventana: cuántas alcanzaron cada paso y dónde está ahora.'
|
|
1119
|
+
other: 'De las %{count} ejecuciones iniciadas en la ventana: cuántas alcanzaron cada paso y dónde está cada una ahora.'
|
|
1120
|
+
empty: Ninguna ejecución se inició en esta ventana.
|
|
1121
|
+
headers:
|
|
1122
|
+
now_here: Ahora en este paso
|
|
1123
|
+
reached: Alcanzado
|
|
1124
|
+
share: De las iniciadas
|
|
1125
|
+
step: Paso
|
|
1126
|
+
here:
|
|
1127
|
+
cancelled:
|
|
1128
|
+
one: "%{count} cancelada"
|
|
1129
|
+
other: "%{count} canceladas"
|
|
1130
|
+
finished:
|
|
1131
|
+
one: "%{count} terminada"
|
|
1132
|
+
other: "%{count} terminadas"
|
|
1133
|
+
paused:
|
|
1134
|
+
one: "%{count} pausada"
|
|
1135
|
+
other: "%{count} pausadas"
|
|
1136
|
+
performing:
|
|
1137
|
+
one: "%{count} en ejecución"
|
|
1138
|
+
other: "%{count} en ejecución"
|
|
1139
|
+
ready:
|
|
1140
|
+
one: "%{count} programada"
|
|
1141
|
+
other: "%{count} programadas"
|
|
1142
|
+
waiting:
|
|
1143
|
+
one: "%{count} esperando"
|
|
1144
|
+
other: "%{count} esperando"
|
|
1145
|
+
title: Embudo
|
|
1146
|
+
pipeline:
|
|
1147
|
+
attempts:
|
|
1148
|
+
one: "%{count} intento"
|
|
1149
|
+
other: "%{count} intentos"
|
|
1150
|
+
caption: 'Cada paso en orden: las ejecuciones que están en él ahora y cómo fueron sus intentos terminados en la ventana.'
|
|
1151
|
+
empty: 'Aún no hay pasos: ninguna ejecución de esta clase tiene un paso en la ventana y ninguna está en curso.'
|
|
1152
|
+
failed: Fallidos
|
|
1153
|
+
kinds:
|
|
1154
|
+
fan_out: Fan-out
|
|
1155
|
+
removed: Eliminado
|
|
1156
|
+
signal: Espera una señal
|
|
1157
|
+
undeclared: No está en la definición
|
|
1158
|
+
live:
|
|
1159
|
+
paused: Pausadas
|
|
1160
|
+
performing: En ejecución
|
|
1161
|
+
ready: Programadas
|
|
1162
|
+
waiting: Esperando
|
|
1163
|
+
now_label: Ejecuciones en este paso ahora
|
|
1164
|
+
pickup: Recogida
|
|
1165
|
+
reattempted: Reintentados
|
|
1166
|
+
run_time: Tiempo de ejecución
|
|
1167
|
+
skipped: Omitidos
|
|
1168
|
+
step_link: Ejecuciones en curso en %{step}
|
|
1169
|
+
title: Pipeline
|
|
1170
|
+
window_label: Intentos terminados en la ventana
|
|
1171
|
+
summary:
|
|
1172
|
+
attention: Requieren atención
|
|
1173
|
+
cancelled: Canceladas
|
|
1174
|
+
duration: Duración p50
|
|
1175
|
+
finished: Terminadas
|
|
1176
|
+
ongoing: En curso
|
|
1177
|
+
started: Iniciadas
|
|
1178
|
+
window_label: Ventana de tiempo
|
|
1179
|
+
windows:
|
|
1180
|
+
1h: la última hora
|
|
1181
|
+
24h: las últimas 24 horas
|
|
1182
|
+
30d: los últimos 30 días
|
|
1183
|
+
7d: los últimos 7 días
|
|
1184
|
+
workflows:
|
|
1185
|
+
actions:
|
|
1186
|
+
bulk_cancel: Cancelar todo
|
|
1187
|
+
bulk_resume: Reanudar todo
|
|
1188
|
+
cancel: Cancelar
|
|
1189
|
+
rerun: Repetir
|
|
1190
|
+
resume: Reanudar
|
|
1191
|
+
resume_at: Reanudar desde el paso
|
|
1192
|
+
run_now: Ejecutar ahora
|
|
1193
|
+
signal: Enviar señal
|
|
1194
|
+
skip_step: Omitir paso
|
|
1195
|
+
attempt: intento %{attempt}
|
|
1196
|
+
attention:
|
|
1197
|
+
at_step_html: en %{step}
|
|
1198
|
+
back: "← Workflows"
|
|
1199
|
+
cancel_all:
|
|
1200
|
+
one: Cancelar %{count}
|
|
1201
|
+
other: Cancelar todas (%{count})
|
|
1202
|
+
confirm:
|
|
1203
|
+
cancel:
|
|
1204
|
+
one: "¿Cancelar la ejecución atascada en %{step}?"
|
|
1205
|
+
other: "¿Cancelar las %{count} ejecuciones atascadas en %{step}?"
|
|
1206
|
+
cancel_error:
|
|
1207
|
+
one: "¿Cancelar la ejecución atascada en %{step} por %{error}?"
|
|
1208
|
+
other: "¿Cancelar las %{count} ejecuciones atascadas en %{step} por %{error}?"
|
|
1209
|
+
resume:
|
|
1210
|
+
one: "¿Reanudar la ejecución en pausa en %{step}?"
|
|
1211
|
+
other: "¿Reanudar las %{count} ejecuciones en pausa en %{step}?"
|
|
1212
|
+
resume_error:
|
|
1213
|
+
one: "¿Reanudar la ejecución en pausa en %{step} por %{error}?"
|
|
1214
|
+
other: "¿Reanudar las %{count} ejecuciones en pausa en %{step} por %{error}?"
|
|
1215
|
+
description: Ejecuciones en curso que esperan a una persona, agrupadas por lo que las detuvo. Una vez corregida la causa, actúe sobre todo el grupo.
|
|
1216
|
+
empty_hint: Ninguna ejecución en curso está en pausa, bloqueada, atrasada o esperando más allá de workflow_waiting_visibility_threshold.
|
|
1217
|
+
empty_title: Nada requiere atención.
|
|
1218
|
+
first_seen_html: primera vez %{time}
|
|
1219
|
+
headers:
|
|
1220
|
+
actions: Acciones
|
|
1221
|
+
reason: Motivo
|
|
1222
|
+
runs: Ejecuciones
|
|
1223
|
+
seen: Visto
|
|
1224
|
+
workflow: Workflow
|
|
1225
|
+
last_seen_html: última vez %{time}
|
|
1226
|
+
only_class_html: Solo %{workflow}.
|
|
1227
|
+
reasons:
|
|
1228
|
+
overdue: 'Atrasada: vencida, pero sin tomar'
|
|
1229
|
+
paused_error: En pausa por un error
|
|
1230
|
+
paused_manual: Pausada manualmente
|
|
1231
|
+
stalled: 'Bloqueada: su worker dejó de responder'
|
|
1232
|
+
waiting_overdue: Espera demasiado larga
|
|
1233
|
+
resume_all:
|
|
1234
|
+
one: Reanudar %{count}
|
|
1235
|
+
other: Reanudar todas (%{count})
|
|
1236
|
+
show_all: Mostrar todas las clases
|
|
1237
|
+
show_runs: Mostrar ejecuciones
|
|
1238
|
+
title: Requieren atención
|
|
1239
|
+
audit:
|
|
1240
|
+
by: "%{event} por %{actor}"
|
|
1241
|
+
empty: No hay eventos registrados.
|
|
1242
|
+
headers:
|
|
1243
|
+
what: Qué ocurrió
|
|
1244
|
+
when: Cuándo
|
|
1245
|
+
title: Historial de auditoría
|
|
1246
|
+
with_reason: "%{sentence}: %{reason}"
|
|
1247
|
+
with_step: "%{sentence} (%{step} #%{attempt})"
|
|
1248
|
+
bad_request: 'Solicitud no válida: %{reason}'
|
|
1249
|
+
confirm:
|
|
1250
|
+
cancel: "¿Cancelar este workflow? Sus pasos abiertos se cancelan y no volverá a ejecutarse."
|
|
1251
|
+
rerun: "¿Iniciar este workflow de nuevo como una ejecución nueva, con el mismo sujeto y los mismos argumentos?"
|
|
1252
|
+
resume: "¿Reanudar este workflow?"
|
|
1253
|
+
resume_at: "¿Reanudar este workflow desde el paso elegido? Sus pasos abiertos se cancelan primero."
|
|
1254
|
+
run_now: "¿Ejecutar ahora el paso programado en lugar de esperar?"
|
|
1255
|
+
signal: "¿Enviar esta señal al workflow?"
|
|
1256
|
+
skip_step: "¿Omitir el paso que espera este workflow y pasar al siguiente?"
|
|
1257
|
+
events:
|
|
1258
|
+
cancelled: Cancelado
|
|
1259
|
+
fan_out_finished: Fan-out terminado
|
|
1260
|
+
fan_out_opened: Fan-out abierto
|
|
1261
|
+
finished: Terminado
|
|
1262
|
+
late_completion_ignored: Finalización tardía ignorada
|
|
1263
|
+
paused: Pausado
|
|
1264
|
+
rerun: Repetido
|
|
1265
|
+
rescheduled: Reprogramado
|
|
1266
|
+
resumed: Reanudado
|
|
1267
|
+
run_now: Ejecutar ahora
|
|
1268
|
+
signal_claimed: Señal reclamada
|
|
1269
|
+
signal_received: Señal recibida
|
|
1270
|
+
stall_detected: Bloqueo detectado
|
|
1271
|
+
started: Iniciado
|
|
1272
|
+
step_completed: Paso completado
|
|
1273
|
+
step_failed: Paso fallido
|
|
1274
|
+
step_reattempted: Paso reintentado
|
|
1275
|
+
step_scheduled: Paso programado
|
|
1276
|
+
step_skipped: Paso omitido
|
|
1277
|
+
step_started: Paso iniciado
|
|
1278
|
+
step_waiting: Paso en espera
|
|
1279
|
+
wait_timed_out: Espera agotada
|
|
1280
|
+
filters:
|
|
1281
|
+
apply: Aplicar filtros
|
|
1282
|
+
clear: Borrar
|
|
1283
|
+
created_from: Creado desde
|
|
1284
|
+
created_to: Creado hasta
|
|
1285
|
+
ended_from: Terminado desde
|
|
1286
|
+
ended_to: Terminado hasta
|
|
1287
|
+
error_class: Clase de error
|
|
1288
|
+
step: Paso actual
|
|
1289
|
+
subject_id: ID del sujeto
|
|
1290
|
+
subject_type: Tipo de sujeto
|
|
1291
|
+
workflow_class: Clase del workflow
|
|
1292
|
+
workflow_id: ID del workflow
|
|
1293
|
+
flash:
|
|
1294
|
+
bad_group: Ese grupo no es válido.
|
|
1295
|
+
bulk_cancel:
|
|
1296
|
+
one: "%{count} cancelado."
|
|
1297
|
+
other: "%{count} cancelados."
|
|
1298
|
+
bulk_cancel_skipped: "%{count} cancelados; %{skipped} ya habían avanzado."
|
|
1299
|
+
bulk_failed: "%{count} no se pudieron cambiar: %{reason}"
|
|
1300
|
+
bulk_more: 'Puede haber más ejecuciones en espera: pulse de nuevo para las siguientes %{cap}.'
|
|
1301
|
+
bulk_resume:
|
|
1302
|
+
one: "%{count} reanudado."
|
|
1303
|
+
other: "%{count} reanudados."
|
|
1304
|
+
bulk_resume_skipped: "%{count} reanudados; %{skipped} ya habían avanzado."
|
|
1305
|
+
cancel: Workflow cancelado.
|
|
1306
|
+
choose_step: Elija un paso desde el que reanudar.
|
|
1307
|
+
failed:
|
|
1308
|
+
not_allowed: 'No realizado: la ejecución está ahora %{status}.'
|
|
1309
|
+
not_found: Ese workflow ya no existe.
|
|
1310
|
+
other: "%{action} falló: %{reason}"
|
|
1311
|
+
payload_not_object: 'No enviada: la carga útil no es un objeto JSON.'
|
|
1312
|
+
payload_too_large: 'No enviada: la carga útil supera los %{limit} bytes.'
|
|
1313
|
+
rerun: Se inició una nueva ejecución.
|
|
1314
|
+
resume: Workflow reanudado.
|
|
1315
|
+
resume_at: Workflow reanudado en %{step}.
|
|
1316
|
+
run_now: El paso programado se ejecuta ahora.
|
|
1317
|
+
signal: Señal %{name} enviada.
|
|
1318
|
+
signal_duplicate: La señal %{name} ya se entregó con esta clave; no se envió nada nuevo.
|
|
1319
|
+
signal_name_missing: 'No enviada: la señal necesita un nombre.'
|
|
1320
|
+
skip_step: Paso omitido.
|
|
1321
|
+
headers:
|
|
1322
|
+
current_step: Paso actual
|
|
1323
|
+
last_activity: Última actividad
|
|
1324
|
+
started: Iniciado
|
|
1325
|
+
status: Estado
|
|
1326
|
+
subject: Sujeto
|
|
1327
|
+
workflow: Workflow
|
|
1328
|
+
index:
|
|
1329
|
+
attention_link:
|
|
1330
|
+
one: Requiere atención (%{count})
|
|
1331
|
+
other: Requieren atención (%{count})
|
|
1332
|
+
description: 'Ejecuciones duraderas de varios pasos: qué hace cada una y qué ocurre a continuación.'
|
|
1333
|
+
empty_hint: Elija otro estado o borre los filtros. Una ejecución se inicia con YourWorkflow.start!(subject, **arguments).
|
|
1334
|
+
empty_title: Ningún workflow coincide.
|
|
1335
|
+
insights_link: Análisis por clase
|
|
1336
|
+
status_label: Filtrar por estado
|
|
1337
|
+
title: Workflows
|
|
1338
|
+
next:
|
|
1339
|
+
cancelled_html: Cancelado %{ago}.
|
|
1340
|
+
due_html: 'Listo: %{step} debía ejecutarse %{ago} y espera a un worker.'
|
|
1341
|
+
finished_html: Terminado %{ago}.
|
|
1342
|
+
overdue_html: 'Atrasado: %{step} debía ejecutarse %{ago}; el barrido lo envía de nuevo.'
|
|
1343
|
+
paused_error_html: 'En pausa en %{step}: %{error} — reanude o cancele.'
|
|
1344
|
+
paused_manual_html: En pausa en %{step} — reanude o cancele.
|
|
1345
|
+
performing_attempt_html: Ejecutando %{step} (intento %{attempt}).
|
|
1346
|
+
performing_html: Ejecutando %{step}.
|
|
1347
|
+
ready_html: 'Listo: %{step} se ejecuta a continuación.'
|
|
1348
|
+
scheduled_html: 'Programado: %{step} se ejecuta %{time}.'
|
|
1349
|
+
unknown_html: 'Estado: %{status}.'
|
|
1350
|
+
waiting_batch_html: Esperando el lote %{batch} (%{done} de %{total} trabajos terminados).
|
|
1351
|
+
waiting_signal_html: Esperando la señal %{signal} desde %{ago}.
|
|
1352
|
+
waiting_signal_timeout_html: Esperando la señal %{signal} desde %{ago}. La espera caduca %{time}.
|
|
1353
|
+
waiting_step_html: Esperando a %{step}.
|
|
1354
|
+
not_found:
|
|
1355
|
+
hint: Puede que haya terminado y se haya eliminado tras workflow_retention, o que no se haya podido leer la base de datos (consulta el registro).
|
|
1356
|
+
title: Workflow no encontrado
|
|
1357
|
+
outcomes:
|
|
1358
|
+
cancelled: cancelado
|
|
1359
|
+
completed: completado
|
|
1360
|
+
finished_early: terminó la ejecución antes de tiempo
|
|
1361
|
+
paused: pausó la ejecución
|
|
1362
|
+
reattempted: reintentado
|
|
1363
|
+
skipped: omitido
|
|
1364
|
+
resume:
|
|
1365
|
+
carry_on: 'Reanudar: seguir con %{step}'
|
|
1366
|
+
continue: 'Reanudar: continuar con %{step}'
|
|
1367
|
+
finish: 'Reanudar: terminar la ejecución'
|
|
1368
|
+
resend: 'Reanudar: enviar %{step} de nuevo'
|
|
1369
|
+
retry: 'Reanudar: reintentar %{step}'
|
|
1370
|
+
rewait: 'Reanudar: esperar de nuevo a %{step}'
|
|
1371
|
+
show:
|
|
1372
|
+
actions: Acciones
|
|
1373
|
+
arguments: Argumentos
|
|
1374
|
+
back: "← Workflows"
|
|
1375
|
+
cancelled_at: Cancelado
|
|
1376
|
+
class_missing: "%{workflow_class} no está cargado en este proceso: la ejecución aún se puede cancelar, pero no reanudar."
|
|
1377
|
+
definition_outdated: 'Esta ejecución se inició con una definición anterior de %{workflow_class}: sus pasos han cambiado desde entonces.'
|
|
1378
|
+
details: Detalles
|
|
1379
|
+
finished_at: Terminado
|
|
1380
|
+
no_arguments: Esta ejecución no tiene argumentos.
|
|
1381
|
+
paused_at: Pausado
|
|
1382
|
+
reason_hint: Se registra en el historial de auditoría, junto a quien lo hizo.
|
|
1383
|
+
reason_label: Motivo (opcional)
|
|
1384
|
+
rerun_of: Repetición de
|
|
1385
|
+
reruns: Repetida como
|
|
1386
|
+
resume_at_label: Paso desde el que reanudar
|
|
1387
|
+
signal:
|
|
1388
|
+
hint: Un paso que la espera despierta de inmediato; si no, queda pendiente hasta que un paso la tome.
|
|
1389
|
+
name: Nombre de la señal
|
|
1390
|
+
payload: Carga útil (JSON)
|
|
1391
|
+
send: Enviar señal
|
|
1392
|
+
title: Enviar una señal
|
|
1393
|
+
signal_statuses:
|
|
1394
|
+
claimed: Reclamada
|
|
1395
|
+
consumed: Consumida
|
|
1396
|
+
pending: Pendiente
|
|
1397
|
+
signals:
|
|
1398
|
+
empty: No se entregó ninguna señal a esta ejecución.
|
|
1399
|
+
headers:
|
|
1400
|
+
claimed: Reclamada
|
|
1401
|
+
consumed: Consumida
|
|
1402
|
+
idempotency_key: Clave de idempotencia
|
|
1403
|
+
name: Señal
|
|
1404
|
+
received: Recibida
|
|
1405
|
+
status: Estado
|
|
1406
|
+
payload: Carga útil
|
|
1407
|
+
title: Señales
|
|
1408
|
+
statuses:
|
|
1409
|
+
cancelled: Cancelado
|
|
1410
|
+
finished: Terminado
|
|
1411
|
+
gone: desaparecido
|
|
1412
|
+
paused: En pausa
|
|
1413
|
+
performing: Ejecutándose
|
|
1414
|
+
ready: Listo
|
|
1415
|
+
scheduled: Programado
|
|
1416
|
+
waiting: En espera
|
|
1417
|
+
step_statuses:
|
|
1418
|
+
cancelled: Cancelado
|
|
1419
|
+
completed: Completado
|
|
1420
|
+
failed: Fallido
|
|
1421
|
+
in_progress: En ejecución
|
|
1422
|
+
scheduled: Programado
|
|
1423
|
+
skipped: Omitido
|
|
1424
|
+
waiting: En espera
|
|
1425
|
+
steps:
|
|
1426
|
+
batch: lote %{batch}
|
|
1427
|
+
caused_by: Causado por %{error}
|
|
1428
|
+
empty: Aún no hay intentos.
|
|
1429
|
+
headers:
|
|
1430
|
+
finished: Terminado
|
|
1431
|
+
queued: En cola
|
|
1432
|
+
ran: Ejecución
|
|
1433
|
+
scheduled: Programado
|
|
1434
|
+
started: Iniciado
|
|
1435
|
+
status: Estado
|
|
1436
|
+
step: Paso
|
|
1437
|
+
waited: Espera
|
|
1438
|
+
worker: Worker
|
|
1439
|
+
revision: revisión %{revision}
|
|
1440
|
+
show_backtrace: Mostrar traza
|
|
1441
|
+
title: Intentos
|
|
1442
|
+
waiting_for: luego espera %{duration}
|
|
1443
|
+
waits_for_html: espera %{signal}
|
|
1444
|
+
tabs:
|
|
1445
|
+
all: Todos
|
|
1446
|
+
cancelled: Cancelados
|
|
1447
|
+
finished: Terminados
|
|
1448
|
+
ongoing: En curso
|
|
1449
|
+
paused: En pausa
|
|
1450
|
+
performing: Ejecutándose
|
|
1451
|
+
ready: Listos
|
|
1452
|
+
waiting: En espera
|
|
1453
|
+
timeline:
|
|
1454
|
+
caption: 'Cada intento, el más antiguo arriba: esperó (su espera), en cola (vencido, aún sin tomar), se ejecutó (coloreado según cómo terminó) y en espera (de una señal o de su lote), con las pausas en su propia fila. La tabla de intentos de abajo muestra las mismas duraciones.'
|
|
1455
|
+
empty: Aún no hay intentos.
|
|
1456
|
+
paused_period_html: En pausa desde %{from} durante %{duration}
|
|
1457
|
+
paused_row: En pausa
|
|
1458
|
+
series:
|
|
1459
|
+
paused: En pausa
|
|
1460
|
+
queued: En cola
|
|
1461
|
+
ran_cancelled: Ejecutado, cancelado
|
|
1462
|
+
ran_failed: Ejecutado, fallido
|
|
1463
|
+
ran_ok: Ejecutado
|
|
1464
|
+
ran_open: En ejecución
|
|
1465
|
+
waited: Esperó
|
|
1466
|
+
waiting: En espera
|
|
1467
|
+
title: Cronología
|