TadaSoftware / PyNFe

Projeto de biblioteca para fazer interface com o webservice de Nota Fiscal eletrônica para Python, disponível sob LGPL.
http://groups.google.com/group/pynfe
Other
426 stars 173 forks source link

Timeout definido pelo client #298

Closed leogregianin closed 8 months ago

leogregianin commented 1 year ago

Hoje o timeout da requisição ao webservice está predefinido como 300 segundos: https://github.com/TadaSoftware/PyNFe/blob/a8f2d54b8b8154ce20cf650a1f20d0ace27bed04/pynfe/processamento/comunicacao.py#L1351

Seria interessante definir como responsabilidade do client conforme sua própria necessidade? Definir um timeout global ou definir um timeout nos parâmetros de cada serviço?

juniortada commented 1 year ago

Acredito que o tempo de timeout pode variar entre os tipos de notas (NF-/NFC-e/etc). Principalmente em casos de NFC-e, a SEFAZ de cada estado tem uma infraestrutura diferente que impacta bastante nesse valor.

Você já teve a necessidade de editar esse valor para algum serviço específico? Para maior ou menor tempo?

leogregianin commented 1 year ago

O timeout varia entre NFe, NFCe e MDFe, entre os tipos de serviço da NFe, principalmente transmissão, distribuição e eventos e também varia entre a SEFAZ de cada estado. Por isso não sei a melhor forma de tratar isso, acredito que um valor padrão fixo dentro da lib não seja a melhor forma.

juniortada commented 1 year ago

Concordo, podemos procurar um valor configurado em uma env, separado por tipo de nota (NF-e/NFC-e). Caso não encontre define o valor default. Teríamos que disponibilizar um env.sample para convencionar os nomes.

Só uma sugestão, também não tenho uma opinião formada sobre a melhor forma de fazer isso.

leotada commented 11 months ago

Acho que seria bom passar um valor de timeout nas classes de Comunicacao, no construtor que ja é específico para cada serviço.

juniortada commented 8 months ago

https://github.com/TadaSoftware/PyNFe/pull/328