[Resolvido] Webservice Flask parando com multiprocessing. (Python)

Situação: Webservice feito em Flask (Python), onde alguns dos métodos disparam rotinas que são executadas em processos separados (Multiprocessing). Enquanto o ambiente está sendo executado via script, está tudo bem. Tudo funciona.

Todavia, quando utilizando o pyinstaller para gerar um executável do webservice, no momento em que a rotina multiprocessing é chamada, o webservice reinicia e passa a não responder.

Isso acontece devido a forma como o multiprocessing é tratado nos ambientes Windows. Todavia, a solução é simples.

 

Solução: Para resolver este problema, basta incluir o comando:

Ele deve ser inserido logo após o statement if __name__ == “__main__”:.

 

Exemplo do código com problema:

No fonte acima, o blueprint utilizado possui uma rota que contém a rotina multi-processo.

 

No fonte acima, o problema foi resolvido importando a função freeze_support do pacote multiprocessing.

 

É isso.

Espero ter ajudado.

The following two tabs change content below.
Breno RdV
Ex-Psicólogo, com quase uma década de experiência em Recursos Humanos e Gestão de Pessoas, atual desenvolvedor e Analista de Sistemas, trabalhando com PowerBuilder, C#, PowerShell e expandindo horizontes para Python, Xamarin, PHP, Angular e (por que não?) Unity.
Breno RdV

Latest posts by Breno RdV (see all)

Comments

comments

Posted in Dev, Python and tagged , , , , , , .