Conn2Flow
Todas as novidades
Automação

O disparo manual de uma tarefa pode sair da requisição web

Uma tarefa que reinicia serviços do servidor derrubava a própria requisição que a disparou. Agora ela pode rodar num processo separado, e o painel diz o quanto esse processo está isolado.

O botão "Disparar agora" executava a tarefa dentro da própria requisição web. Para quase toda tarefa, isso basta. Para uma tarefa que reinicia o serviço de PHP, não: a reinicialização encerra o processo que atende a requisição, o navegador recebe um erro e a tarefa morre no meio.

O agendamento normal nunca teve esse problema, porque já roda pela linha de comando.

Primeira tentativa

A tarefa passou a declarar, nos próprios parâmetros, que precisa rodar fora da requisição. O sistema a inicia como um processo separado e responde ao painel na hora. Quem sabe que a tarefa reinicia um serviço é o módulo dono dela, e não o núcleo.

Por que não bastou

Separar o processo da sessão não o tira do grupo de processos do serviço. Quando o sistema operacional reinicia o serviço, encerra o grupo inteiro, com o processo separado junto.

A solução

O sistema passou a testar três formas de iniciar o processo, da mais isolada para a menos, e usa a primeira que funcionar:

  • um grupo próprio, criado pelo gerenciador de serviços;
  • uma sessão remota local, que nasce em outro grupo;
  • só uma sessão nova, como último recurso.

A terceira não protege contra a reinicialização, e o painel diz isso: a resposta informa qual forma foi usada e se há isolamento. Quando nenhuma está disponível, a tarefa roda como antes.

Origem: Core · BATCH-166/167

O Futuro é Híbrido: Humano + IA.

O Conn2Flow é a ferramenta. Se você precisa do Arquiteto para desenhar a estratégia da sua empresa usando essa tecnologia...

Contrate Consultoria Especializada