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/pt.yml
CHANGED
|
@@ -140,6 +140,11 @@ pt:
|
|
|
140
140
|
throughput: Taxa de transferência
|
|
141
141
|
throughput_detail: jobs/min nos últimos %{minutes} min
|
|
142
142
|
throughput_unavailable: requer estatísticas de jobs (rails g pgbus:add_job_stats)
|
|
143
|
+
workflows: Workflows
|
|
144
|
+
workflows_attention:
|
|
145
|
+
one: "%{count} requer atenção"
|
|
146
|
+
other: "%{count} requerem atenção"
|
|
147
|
+
workflows_detail: em andamento (%{paused} em pausa)
|
|
143
148
|
verdict:
|
|
144
149
|
links:
|
|
145
150
|
dlq: Mensagens mortas
|
|
@@ -723,6 +728,7 @@ pt:
|
|
|
723
728
|
processes: Processos
|
|
724
729
|
queues: Filas
|
|
725
730
|
recurring: Recorrente
|
|
731
|
+
workflows: Workflows
|
|
726
732
|
return_to_app: Voltar ao aplicativo
|
|
727
733
|
title: Painel Pgbus
|
|
728
734
|
toggle_dark_mode: Alternar modo escuro
|
|
@@ -1023,3 +1029,439 @@ pt:
|
|
|
1023
1029
|
disabled: Tarefa desativada
|
|
1024
1030
|
enabled: Tarefa ativada
|
|
1025
1031
|
failed: Falha ao alternar tarefa
|
|
1032
|
+
workflow_insights:
|
|
1033
|
+
back_to_classes: Todas as classes de workflow
|
|
1034
|
+
back_to_runs: Todas as execuções de workflow
|
|
1035
|
+
bad_request: 'Requisição inválida: %{reason}'
|
|
1036
|
+
capped: 'Limitado a workflow_retention (%{retention}): execuções terminadas e canceladas mais antigas são apagadas.'
|
|
1037
|
+
few_samples:
|
|
1038
|
+
one: n=%{count}, poucas amostras
|
|
1039
|
+
other: n=%{count}, poucas amostras
|
|
1040
|
+
index:
|
|
1041
|
+
description: 'Como correu cada classe de workflow em %{window}: as execuções em curso, as que terminaram e quanto tempo uma execução leva do início ao fim.'
|
|
1042
|
+
empty_hint: 'Defina uma subclasse de Pgbus::Workflow e inicie uma execução: YourWorkflow.start!(subject, **arguments).'
|
|
1043
|
+
empty_title: Nenhuma classe de workflow foi executada ainda.
|
|
1044
|
+
headers:
|
|
1045
|
+
attention: Precisam de atenção
|
|
1046
|
+
cancelled: Canceladas
|
|
1047
|
+
duration_p50: Duração p50
|
|
1048
|
+
duration_p95: Duração p95
|
|
1049
|
+
finished: Terminadas
|
|
1050
|
+
ongoing: Em curso
|
|
1051
|
+
paused: Em pausa
|
|
1052
|
+
workflow_class: Classe de workflow
|
|
1053
|
+
title: Análise de workflows
|
|
1054
|
+
links:
|
|
1055
|
+
at_step: "%{status} execuções em %{step}"
|
|
1056
|
+
attention: execuções de %{workflow} que precisam de atenção
|
|
1057
|
+
cancelled: execuções de %{workflow} canceladas na janela
|
|
1058
|
+
cancelled_bucket: execuções canceladas neste período
|
|
1059
|
+
finished: execuções de %{workflow} terminadas na janela
|
|
1060
|
+
finished_bucket: execuções terminadas neste período
|
|
1061
|
+
ongoing: execuções em curso de %{workflow}
|
|
1062
|
+
paused: execuções em pausa de %{workflow}
|
|
1063
|
+
started: execuções de %{workflow} iniciadas na janela
|
|
1064
|
+
started_bucket: execuções iniciadas neste período
|
|
1065
|
+
not_found:
|
|
1066
|
+
hint: Nenhuma subclasse de Pgbus::Workflow nem nenhuma execução se chama %{workflow} (ou a leitura falhou, veja o registo).
|
|
1067
|
+
title: Classe de workflow desconhecida
|
|
1068
|
+
not_loaded: Definição não carregada
|
|
1069
|
+
not_loaded_hint: 'Esta classe já não carrega na aplicação: os passos vêm das linhas das suas execuções, na ordem em que as execuções os alcançaram.'
|
|
1070
|
+
percentile: "%{name} %{value}"
|
|
1071
|
+
removed_in_flight:
|
|
1072
|
+
one: "%{count} execução no passo removido %{step}"
|
|
1073
|
+
other: "%{count} execuções no passo removido %{step}"
|
|
1074
|
+
show:
|
|
1075
|
+
by_revision:
|
|
1076
|
+
all_steps: Todos os passos
|
|
1077
|
+
caption: 'Os mesmos números para as últimas cinco revisões da aplicação que terminaram uma tentativa na janela, a mais recente primeiro: uma regressão após um deploy aparece como uma linha.'
|
|
1078
|
+
empty: Nenhuma tentativa nesta janela registou uma revisão da aplicação (config.app_revision).
|
|
1079
|
+
headers:
|
|
1080
|
+
attempts: Tentativas
|
|
1081
|
+
failed: Falhadas
|
|
1082
|
+
reattempted: Repetidas
|
|
1083
|
+
revision: Revisão
|
|
1084
|
+
run_time: Tempo de execução
|
|
1085
|
+
skipped: Ignoradas
|
|
1086
|
+
step: Passo
|
|
1087
|
+
seen_html: vista de %{from} a %{to}
|
|
1088
|
+
title: Por revisão da aplicação
|
|
1089
|
+
worse: subiu de %{rate} em %{revision}
|
|
1090
|
+
charts:
|
|
1091
|
+
durations:
|
|
1092
|
+
between: "%{from}–%{to}"
|
|
1093
|
+
caption:
|
|
1094
|
+
one: Quanto tempo levou a %{count} execução terminada na janela, do início ao fim.
|
|
1095
|
+
other: Quanto tempo levaram as %{count} execuções terminadas na janela, do início ao fim.
|
|
1096
|
+
headers:
|
|
1097
|
+
range: Duração
|
|
1098
|
+
runs: Execuções
|
|
1099
|
+
over: "%{from} ou mais"
|
|
1100
|
+
title: Duração do início ao fim
|
|
1101
|
+
under: menos de %{to}
|
|
1102
|
+
series:
|
|
1103
|
+
cancelled: Canceladas
|
|
1104
|
+
finished: Terminadas
|
|
1105
|
+
runs: Execuções
|
|
1106
|
+
started: Iniciadas
|
|
1107
|
+
throughput:
|
|
1108
|
+
caption: 'Execuções iniciadas, terminadas e canceladas por %{bucket} em %{window}: %{started} iniciadas, %{finished} terminadas, %{cancelled} canceladas.'
|
|
1109
|
+
headers:
|
|
1110
|
+
cancelled: Canceladas
|
|
1111
|
+
finished: Terminadas
|
|
1112
|
+
from: Desde
|
|
1113
|
+
started: Iniciadas
|
|
1114
|
+
title: Execuções por %{bucket}
|
|
1115
|
+
description: 'Em %{window}: onde estão as execuções agora, como cada passo se comporta e onde as execuções param.'
|
|
1116
|
+
funnel:
|
|
1117
|
+
caption:
|
|
1118
|
+
one: 'Da %{count} execução iniciada na janela: quantas alcançaram cada passo e onde está agora.'
|
|
1119
|
+
other: 'Das %{count} execuções iniciadas na janela: quantas alcançaram cada passo e onde está cada uma agora.'
|
|
1120
|
+
empty: Nenhuma execução foi iniciada nesta janela.
|
|
1121
|
+
headers:
|
|
1122
|
+
now_here: Agora neste passo
|
|
1123
|
+
reached: Alcançado
|
|
1124
|
+
share: Das iniciadas
|
|
1125
|
+
step: Passo
|
|
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} em pausa"
|
|
1135
|
+
other: "%{count} em pausa"
|
|
1136
|
+
performing:
|
|
1137
|
+
one: "%{count} em execução"
|
|
1138
|
+
other: "%{count} em execução"
|
|
1139
|
+
ready:
|
|
1140
|
+
one: "%{count} agendada"
|
|
1141
|
+
other: "%{count} agendadas"
|
|
1142
|
+
waiting:
|
|
1143
|
+
one: "%{count} aguardando"
|
|
1144
|
+
other: "%{count} aguardando"
|
|
1145
|
+
title: Funil
|
|
1146
|
+
pipeline:
|
|
1147
|
+
attempts:
|
|
1148
|
+
one: "%{count} tentativa"
|
|
1149
|
+
other: "%{count} tentativas"
|
|
1150
|
+
caption: 'Cada passo por ordem: as execuções que estão nele agora e como correram as suas tentativas terminadas na janela.'
|
|
1151
|
+
empty: 'Ainda sem passos: nenhuma execução desta classe tem um passo na janela e nenhuma está em curso.'
|
|
1152
|
+
failed: Falhadas
|
|
1153
|
+
kinds:
|
|
1154
|
+
fan_out: Fan-out
|
|
1155
|
+
removed: Removido
|
|
1156
|
+
signal: Aguarda um sinal
|
|
1157
|
+
undeclared: Fora da definição
|
|
1158
|
+
live:
|
|
1159
|
+
paused: Em pausa
|
|
1160
|
+
performing: Em execução
|
|
1161
|
+
ready: Agendadas
|
|
1162
|
+
waiting: Aguardando
|
|
1163
|
+
now_label: Execuções neste passo agora
|
|
1164
|
+
pickup: Recolha
|
|
1165
|
+
reattempted: Repetidas
|
|
1166
|
+
run_time: Tempo de execução
|
|
1167
|
+
skipped: Ignoradas
|
|
1168
|
+
step_link: Execuções em curso em %{step}
|
|
1169
|
+
title: Pipeline
|
|
1170
|
+
window_label: Tentativas terminadas na janela
|
|
1171
|
+
summary:
|
|
1172
|
+
attention: Precisam de atenção
|
|
1173
|
+
cancelled: Canceladas
|
|
1174
|
+
duration: Duração p50
|
|
1175
|
+
finished: Terminadas
|
|
1176
|
+
ongoing: Em curso
|
|
1177
|
+
started: Iniciadas
|
|
1178
|
+
window_label: Janela de tempo
|
|
1179
|
+
windows:
|
|
1180
|
+
1h: a última hora
|
|
1181
|
+
24h: as últimas 24 horas
|
|
1182
|
+
30d: os últimos 30 dias
|
|
1183
|
+
7d: os últimos 7 dias
|
|
1184
|
+
workflows:
|
|
1185
|
+
actions:
|
|
1186
|
+
bulk_cancel: Cancelar todos
|
|
1187
|
+
bulk_resume: Retomar todos
|
|
1188
|
+
cancel: Cancelar
|
|
1189
|
+
rerun: Reexecutar
|
|
1190
|
+
resume: Retomar
|
|
1191
|
+
resume_at: Retomar na etapa
|
|
1192
|
+
run_now: Executar agora
|
|
1193
|
+
signal: Enviar sinal
|
|
1194
|
+
skip_step: Ignorar etapa
|
|
1195
|
+
attempt: tentativa %{attempt}
|
|
1196
|
+
attention:
|
|
1197
|
+
at_step_html: em %{step}
|
|
1198
|
+
back: "← Workflows"
|
|
1199
|
+
cancel_all:
|
|
1200
|
+
one: Cancelar %{count}
|
|
1201
|
+
other: Cancelar todas (%{count})
|
|
1202
|
+
confirm:
|
|
1203
|
+
cancel:
|
|
1204
|
+
one: Cancelar a execução presa em %{step}?
|
|
1205
|
+
other: Cancelar as %{count} execuções presas em %{step}?
|
|
1206
|
+
cancel_error:
|
|
1207
|
+
one: Cancelar a execução presa em %{step} por %{error}?
|
|
1208
|
+
other: Cancelar as %{count} execuções presas em %{step} por %{error}?
|
|
1209
|
+
resume:
|
|
1210
|
+
one: Retomar a execução em pausa em %{step}?
|
|
1211
|
+
other: Retomar as %{count} execuções em pausa em %{step}?
|
|
1212
|
+
resume_error:
|
|
1213
|
+
one: Retomar a execução em pausa em %{step} por %{error}?
|
|
1214
|
+
other: Retomar as %{count} execuções em pausa em %{step} por %{error}?
|
|
1215
|
+
description: Execuções em andamento que aguardam uma pessoa, agrupadas pelo que as parou. Depois de corrigida a causa, aja no grupo inteiro.
|
|
1216
|
+
empty_hint: Nenhuma execução em andamento está em pausa, travada, atrasada ou aguardando além de workflow_waiting_visibility_threshold.
|
|
1217
|
+
empty_title: Nada requer atenção.
|
|
1218
|
+
first_seen_html: primeira vez %{time}
|
|
1219
|
+
headers:
|
|
1220
|
+
actions: Ações
|
|
1221
|
+
reason: Motivo
|
|
1222
|
+
runs: Execuções
|
|
1223
|
+
seen: Visto
|
|
1224
|
+
workflow: Workflow
|
|
1225
|
+
last_seen_html: última vez %{time}
|
|
1226
|
+
only_class_html: Apenas %{workflow}.
|
|
1227
|
+
reasons:
|
|
1228
|
+
overdue: 'Atrasada: vencida, mas não pega'
|
|
1229
|
+
paused_error: Em pausa por um erro
|
|
1230
|
+
paused_manual: Pausada manualmente
|
|
1231
|
+
stalled: 'Travada: o worker parou de responder'
|
|
1232
|
+
waiting_overdue: Espera longa demais
|
|
1233
|
+
resume_all:
|
|
1234
|
+
one: Retomar %{count}
|
|
1235
|
+
other: Retomar todas (%{count})
|
|
1236
|
+
show_all: Mostrar todas as classes
|
|
1237
|
+
show_runs: Mostrar execuções
|
|
1238
|
+
title: Requerem atenção
|
|
1239
|
+
audit:
|
|
1240
|
+
by: "%{event} por %{actor}"
|
|
1241
|
+
empty: Nenhum evento registrado.
|
|
1242
|
+
headers:
|
|
1243
|
+
what: O que aconteceu
|
|
1244
|
+
when: Quando
|
|
1245
|
+
title: Trilha de auditoria
|
|
1246
|
+
with_reason: "%{sentence}: %{reason}"
|
|
1247
|
+
with_step: "%{sentence} (%{step} #%{attempt})"
|
|
1248
|
+
bad_request: 'Requisição inválida: %{reason}'
|
|
1249
|
+
confirm:
|
|
1250
|
+
cancel: Cancelar este workflow? Suas etapas abertas são canceladas e ele não executa mais.
|
|
1251
|
+
rerun: Iniciar este workflow de novo como uma nova execução, com o mesmo sujeito e os mesmos argumentos?
|
|
1252
|
+
resume: Retomar este workflow?
|
|
1253
|
+
resume_at: Retomar este workflow na etapa escolhida? Suas etapas abertas são canceladas antes.
|
|
1254
|
+
run_now: Executar agora a etapa agendada em vez de esperar?
|
|
1255
|
+
signal: Enviar este sinal ao workflow?
|
|
1256
|
+
skip_step: Ignorar a etapa que este workflow aguarda e passar para a próxima?
|
|
1257
|
+
events:
|
|
1258
|
+
cancelled: Cancelado
|
|
1259
|
+
fan_out_finished: Fan-out concluído
|
|
1260
|
+
fan_out_opened: Fan-out aberto
|
|
1261
|
+
finished: Concluído
|
|
1262
|
+
late_completion_ignored: Conclusão tardia ignorada
|
|
1263
|
+
paused: Pausado
|
|
1264
|
+
rerun: Reexecutado
|
|
1265
|
+
rescheduled: Reagendado
|
|
1266
|
+
resumed: Retomado
|
|
1267
|
+
run_now: Executar agora
|
|
1268
|
+
signal_claimed: Sinal reivindicado
|
|
1269
|
+
signal_received: Sinal recebido
|
|
1270
|
+
stall_detected: Travamento detectado
|
|
1271
|
+
started: Iniciado
|
|
1272
|
+
step_completed: Etapa concluída
|
|
1273
|
+
step_failed: Etapa com falha
|
|
1274
|
+
step_reattempted: Etapa tentada novamente
|
|
1275
|
+
step_scheduled: Etapa agendada
|
|
1276
|
+
step_skipped: Etapa ignorada
|
|
1277
|
+
step_started: Etapa iniciada
|
|
1278
|
+
step_waiting: Etapa aguardando
|
|
1279
|
+
wait_timed_out: Espera expirada
|
|
1280
|
+
filters:
|
|
1281
|
+
apply: Aplicar filtros
|
|
1282
|
+
clear: Limpar
|
|
1283
|
+
created_from: Criado a partir de
|
|
1284
|
+
created_to: Criado até
|
|
1285
|
+
ended_from: Terminado desde
|
|
1286
|
+
ended_to: Terminado até
|
|
1287
|
+
error_class: Classe de erro
|
|
1288
|
+
step: Etapa atual
|
|
1289
|
+
subject_id: ID do sujeito
|
|
1290
|
+
subject_type: Tipo de sujeito
|
|
1291
|
+
workflow_class: Classe do workflow
|
|
1292
|
+
workflow_id: ID do workflow
|
|
1293
|
+
flash:
|
|
1294
|
+
bad_group: Esse grupo não é válido.
|
|
1295
|
+
bulk_cancel:
|
|
1296
|
+
one: "%{count} cancelado."
|
|
1297
|
+
other: "%{count} cancelados."
|
|
1298
|
+
bulk_cancel_skipped: "%{count} cancelados; %{skipped} já tinham avançado."
|
|
1299
|
+
bulk_failed: "%{count} não puderam ser alterados: %{reason}"
|
|
1300
|
+
bulk_more: 'Pode haver mais execuções aguardando: pressione de novo para as próximas %{cap}.'
|
|
1301
|
+
bulk_resume:
|
|
1302
|
+
one: "%{count} retomado."
|
|
1303
|
+
other: "%{count} retomados."
|
|
1304
|
+
bulk_resume_skipped: "%{count} retomados; %{skipped} já tinham avançado."
|
|
1305
|
+
cancel: Workflow cancelado.
|
|
1306
|
+
choose_step: Escolha uma etapa para retomar.
|
|
1307
|
+
failed:
|
|
1308
|
+
not_allowed: 'Não realizado: a execução agora está %{status}.'
|
|
1309
|
+
not_found: Esse workflow não existe mais.
|
|
1310
|
+
other: "%{action} falhou: %{reason}"
|
|
1311
|
+
payload_not_object: 'Não enviado: o payload não é um objeto JSON.'
|
|
1312
|
+
payload_too_large: 'Não enviado: o payload excede %{limit} bytes.'
|
|
1313
|
+
rerun: Nova execução iniciada.
|
|
1314
|
+
resume: Workflow retomado.
|
|
1315
|
+
resume_at: Workflow retomado em %{step}.
|
|
1316
|
+
run_now: A etapa agendada está executando agora.
|
|
1317
|
+
signal: Sinal %{name} enviado.
|
|
1318
|
+
signal_duplicate: O sinal %{name} já foi entregue com esta chave; nada de novo foi enviado.
|
|
1319
|
+
signal_name_missing: 'Não enviado: o sinal precisa de um nome.'
|
|
1320
|
+
skip_step: Etapa ignorada.
|
|
1321
|
+
headers:
|
|
1322
|
+
current_step: Etapa atual
|
|
1323
|
+
last_activity: Última atividade
|
|
1324
|
+
started: Iniciado
|
|
1325
|
+
status: Status
|
|
1326
|
+
subject: Sujeito
|
|
1327
|
+
workflow: Workflow
|
|
1328
|
+
index:
|
|
1329
|
+
attention_link:
|
|
1330
|
+
one: Requer atenção (%{count})
|
|
1331
|
+
other: Requerem atenção (%{count})
|
|
1332
|
+
description: 'Execuções duráveis de várias etapas: o que cada uma está fazendo e o que acontece a seguir.'
|
|
1333
|
+
empty_hint: Escolha outro status ou limpe os filtros. Uma execução começa com YourWorkflow.start!(subject, **arguments).
|
|
1334
|
+
empty_title: Nenhum workflow corresponde.
|
|
1335
|
+
insights_link: Análise por classe
|
|
1336
|
+
status_label: Filtrar por status
|
|
1337
|
+
title: Workflows
|
|
1338
|
+
next:
|
|
1339
|
+
cancelled_html: Cancelado %{ago}.
|
|
1340
|
+
due_html: 'Pronto: %{step} deveria ter rodado %{ago} e aguarda um worker.'
|
|
1341
|
+
finished_html: Concluído %{ago}.
|
|
1342
|
+
overdue_html: 'Atrasado: %{step} deveria ter rodado %{ago}; a varredura o envia de novo.'
|
|
1343
|
+
paused_error_html: 'Em pausa em %{step}: %{error} — retome ou cancele.'
|
|
1344
|
+
paused_manual_html: Em pausa em %{step} — retome ou cancele.
|
|
1345
|
+
performing_attempt_html: Executando %{step} (tentativa %{attempt}).
|
|
1346
|
+
performing_html: Executando %{step}.
|
|
1347
|
+
ready_html: 'Pronto: %{step} executa em seguida.'
|
|
1348
|
+
scheduled_html: 'Agendado: %{step} executa %{time}.'
|
|
1349
|
+
unknown_html: 'Status: %{status}.'
|
|
1350
|
+
waiting_batch_html: Aguardando o lote %{batch} (%{done} de %{total} trabalhos concluídos).
|
|
1351
|
+
waiting_signal_html: Aguardando o sinal %{signal} desde %{ago}.
|
|
1352
|
+
waiting_signal_timeout_html: Aguardando o sinal %{signal} desde %{ago}. A espera expira %{time}.
|
|
1353
|
+
waiting_step_html: Aguardando %{step}.
|
|
1354
|
+
not_found:
|
|
1355
|
+
hint: Pode ter terminado e sido removido após workflow_retention, ou a base de dados não pôde ser lida (veja o log).
|
|
1356
|
+
title: Workflow não encontrado
|
|
1357
|
+
outcomes:
|
|
1358
|
+
cancelled: cancelado
|
|
1359
|
+
completed: concluído
|
|
1360
|
+
finished_early: encerrou a execução antes do fim
|
|
1361
|
+
paused: pausou a execução
|
|
1362
|
+
reattempted: tentado novamente
|
|
1363
|
+
skipped: ignorado
|
|
1364
|
+
resume:
|
|
1365
|
+
carry_on: 'Retomar: prosseguir com %{step}'
|
|
1366
|
+
continue: 'Retomar: continuar com %{step}'
|
|
1367
|
+
finish: 'Retomar: concluir a execução'
|
|
1368
|
+
resend: 'Retomar: enviar %{step} novamente'
|
|
1369
|
+
retry: 'Retomar: tentar %{step} novamente'
|
|
1370
|
+
rewait: 'Retomar: aguardar %{step} novamente'
|
|
1371
|
+
show:
|
|
1372
|
+
actions: Ações
|
|
1373
|
+
arguments: Argumentos
|
|
1374
|
+
back: "← Workflows"
|
|
1375
|
+
cancelled_at: Cancelado
|
|
1376
|
+
class_missing: "%{workflow_class} não está carregado neste processo: a execução ainda pode ser cancelada, mas não retomada."
|
|
1377
|
+
definition_outdated: 'Esta execução começou com uma definição antiga de %{workflow_class}: suas etapas mudaram desde então.'
|
|
1378
|
+
details: Detalhes
|
|
1379
|
+
finished_at: Concluído
|
|
1380
|
+
no_arguments: Esta execução não tem argumentos.
|
|
1381
|
+
paused_at: Pausado
|
|
1382
|
+
reason_hint: Registrado na trilha de auditoria, junto de quem fez.
|
|
1383
|
+
reason_label: Motivo (opcional)
|
|
1384
|
+
rerun_of: Reexecução de
|
|
1385
|
+
reruns: Reexecutado como
|
|
1386
|
+
resume_at_label: Etapa para retomar
|
|
1387
|
+
signal:
|
|
1388
|
+
hint: Uma etapa que o aguarda acorda na hora; caso contrário, ele fica pendente até que uma etapa o pegue.
|
|
1389
|
+
name: Nome do sinal
|
|
1390
|
+
payload: Payload (JSON)
|
|
1391
|
+
send: Enviar sinal
|
|
1392
|
+
title: Enviar um sinal
|
|
1393
|
+
signal_statuses:
|
|
1394
|
+
claimed: Reivindicado
|
|
1395
|
+
consumed: Consumido
|
|
1396
|
+
pending: Pendente
|
|
1397
|
+
signals:
|
|
1398
|
+
empty: Nenhum sinal entregue a esta execução.
|
|
1399
|
+
headers:
|
|
1400
|
+
claimed: Reivindicado
|
|
1401
|
+
consumed: Consumido
|
|
1402
|
+
idempotency_key: Chave de idempotência
|
|
1403
|
+
name: Sinal
|
|
1404
|
+
received: Recebido
|
|
1405
|
+
status: Status
|
|
1406
|
+
payload: Payload
|
|
1407
|
+
title: Sinais
|
|
1408
|
+
statuses:
|
|
1409
|
+
cancelled: Cancelado
|
|
1410
|
+
finished: Concluído
|
|
1411
|
+
gone: removido
|
|
1412
|
+
paused: Em pausa
|
|
1413
|
+
performing: Executando
|
|
1414
|
+
ready: Pronto
|
|
1415
|
+
scheduled: Agendado
|
|
1416
|
+
waiting: Aguardando
|
|
1417
|
+
step_statuses:
|
|
1418
|
+
cancelled: Cancelada
|
|
1419
|
+
completed: Concluída
|
|
1420
|
+
failed: Com falha
|
|
1421
|
+
in_progress: Em execução
|
|
1422
|
+
scheduled: Agendada
|
|
1423
|
+
skipped: Ignorada
|
|
1424
|
+
waiting: Aguardando
|
|
1425
|
+
steps:
|
|
1426
|
+
batch: lote %{batch}
|
|
1427
|
+
caused_by: Causado por %{error}
|
|
1428
|
+
empty: Ainda não há tentativas.
|
|
1429
|
+
headers:
|
|
1430
|
+
finished: Concluída
|
|
1431
|
+
queued: Na fila
|
|
1432
|
+
ran: Execução
|
|
1433
|
+
scheduled: Agendada
|
|
1434
|
+
started: Iniciada
|
|
1435
|
+
status: Status
|
|
1436
|
+
step: Etapa
|
|
1437
|
+
waited: Espera
|
|
1438
|
+
worker: Worker
|
|
1439
|
+
revision: revisão %{revision}
|
|
1440
|
+
show_backtrace: Mostrar backtrace
|
|
1441
|
+
title: Tentativas
|
|
1442
|
+
waiting_for: depois aguardando %{duration}
|
|
1443
|
+
waits_for_html: aguarda %{signal}
|
|
1444
|
+
tabs:
|
|
1445
|
+
all: Todos
|
|
1446
|
+
cancelled: Cancelados
|
|
1447
|
+
finished: Concluídos
|
|
1448
|
+
ongoing: Em andamento
|
|
1449
|
+
paused: Em pausa
|
|
1450
|
+
performing: Executando
|
|
1451
|
+
ready: Prontos
|
|
1452
|
+
waiting: Aguardando
|
|
1453
|
+
timeline:
|
|
1454
|
+
caption: 'Cada tentativa, a mais antiga no topo: esperou (sua espera), na fila (vencida, ainda não pega), executou (colorida conforme terminou) e aguardando (um sinal ou seu lote), com as pausas em linha própria. A tabela de tentativas abaixo lista as mesmas durações.'
|
|
1455
|
+
empty: Ainda não há tentativas.
|
|
1456
|
+
paused_period_html: Em pausa desde %{from} durante %{duration}
|
|
1457
|
+
paused_row: Em pausa
|
|
1458
|
+
series:
|
|
1459
|
+
paused: Em pausa
|
|
1460
|
+
queued: Na fila
|
|
1461
|
+
ran_cancelled: Executou, cancelada
|
|
1462
|
+
ran_failed: Executou, falhou
|
|
1463
|
+
ran_ok: Executou
|
|
1464
|
+
ran_open: Em execução
|
|
1465
|
+
waited: Esperou
|
|
1466
|
+
waiting: Aguardando
|
|
1467
|
+
title: Linha do tempo
|