Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XMLs não importados #33

Open
matheusgnreis opened this issue Mar 8, 2022 · 20 comments
Open

XMLs não importados #33

matheusgnreis opened this issue Mar 8, 2022 · 20 comments
Assignees

Comments

@matheusgnreis
Copy link
Member

Descreva o bug
https://www.ohmulherstore.com.br/xml/1fec0/googlemerchant.xml - 34229

https://www.blendflowerperfumes.com.br/xml/google - 37560
https://www.venebras.com.br/xml/b7d67/googlemerchant.xml - 9043

Essas 3 lojas foram inseridas para importar produtos, mas não está ocorrendo, não consegui verificar o erro. O que se apresenta no log é TypeError [ERR_HTTP_INVALID_HEADER_VALUE]: Invalid value "undefined" for header "X-My-ID", mas não acredito que seja isso. Tem muito webhook de importação de outro app.

Em ecom_notifications mostra lá 6 cliques no salve para importar, mas nada de importar de fato, inclusive com uma propriedade attempts zerada.

@leomp12
Copy link
Member

leomp12 commented Mar 9, 2022

Você pode tentar procurar o bug no código @matheusgnreis ?

@matheusgnreis
Copy link
Member Author

matheusgnreis commented Mar 9, 2022

Me deixa colocar uns consoles @leomp12

@leomp12
Copy link
Member

leomp12 commented Mar 9, 2022

Uai vai lá haha

@leomp12
Copy link
Member

leomp12 commented Mar 9, 2022

Te adicionei no repositório

@thiagoabreudev thiagoabreudev self-assigned this Mar 10, 2022
@thiagoabreudev
Copy link
Collaborator

Chegou a ver algo @matheusgnreis ou posso dar uma olhada?

@matheusgnreis
Copy link
Member Author

Agora a fila não fica travada, porém está ainda dando algum timeout e assim não realizando POST. Pelo que vi ele entra https://github.com/ecomplus/app-feed-importer/blob/master/functions/lib/gmc-to-ecom.js#L293 aqui, mas a resposta do https://github.com/ecomplus/app-feed-importer/blob/master/functions/lib/gmc-to-ecom.js#L297 aparentemente não vem. Tentei retirá-lo pra ver se ia, mas logs posteriores não foram acionados.

  worker Function execution took 60005 ms, finished with status: 'timeout'

Sempre tenho essa resposta.

@leomp12
Copy link
Member

leomp12 commented Mar 11, 2022

Desistiu cedo demais

@leomp12
Copy link
Member

leomp12 commented Mar 11, 2022

Com certeza vocẽ consegue pelo menos pegar um log melhor aí 😬

@leomp12
Copy link
Member

leomp12 commented Mar 11, 2022

@thiagoabreudev se você puder dar uma mão por favor

@matheusgnreis
Copy link
Member Author

Eu vou pegar, questão é que não estava me respondendo. Coloquei log em várias etapas, dentro da função e tudo que não estava dando retorno e mesmo assim não apareceu. Parei um pouco, as vezes tô fazendo coisa sem sentido, mas deixei aí registrado pra não esquecer

@matheusgnreis
Copy link
Member Author

Aparentemente problemas estão nos awaits do arquivo https://github.com/ecomplus/app-feed-importer/blob/master/functions/lib/gmc-to-ecom.js

@leomp12
Copy link
Member

leomp12 commented Mar 14, 2022

@matheusgnreis como assim "estão nos awaits"? 😄
Os debugs que você adicionou estão errados também, talvez por isso não conseguiu achar o erro aí...
Eg.:

const err = new Error(error.message)
err.request = err.request?.config
err.response = err.response?.data

Nesse caso aí err.request?.config nunca vai existir, error (não err) é o objeto de erro do axios https://github.com/axios/axios#handling-errors

@matheusgnreis
Copy link
Member Author

Eu achei estranho, mas como tinha me mandado, ai eu só colei lá. Vou debugar mais. Como foi falado que talvez mexeria sábado, ai não cheguei a mexer, mas vou olhar hoje de novo com os erros agora pra serem mostrados

@matheusgnreis
Copy link
Member Author

@leomp12 esses logs não mudaram em nada as respostas lá

@leomp12
Copy link
Member

leomp12 commented Mar 16, 2022

respostas lá

Como assim? Que respostas?
De qualquer forma, mexer em log não faz nada passar a funcionar é claro, eu só mexi onde você disse que acha que está o erro, nem olhei log nenhum na verdade, só editei debugs que você indicou para adicionar mais informações (especialmente config do axios) para você conseguir ver qual era a request problemática.

@leomp12
Copy link
Member

leomp12 commented Mar 16, 2022

Bom, agora eu fui ver os logs da função aqui e não tem nenhum erro do arquivo que você indicou então realmente o commit que eu fiz não fez diferença nenhuma, o único erro da função desde ontem é do domínio de alguma loja: getaddrinfo EAI_AGAIN www.e-presentes.com.br

Basicamente isso é timeout de lookup pro DNS ou first byte no URL do XML com esse domínio aí, não tem nada a ver com as requests na nossa API do arquivo https://github.com/ecomplus/app-feed-importer/blob/master/functions/lib/gmc-to-ecom.js e também não temos como resolver editando código do app, o que você pode fazer nesse caso é tentar baixar a tabela e fazer o upload em algum outro lugar, e aí utilizar o respectivo URL na configuração do app.

Obs.: Não tô dizendo que não teve outro erro, nem procurei nada das lojas que você indicou e nem sei se começaram a ser processadas, só estou dizendo que não houve erro onde você tinha indicado na verdade, se há problema, não é ali.

@thiagoabreudev
Copy link
Collaborator

thiagoabreudev commented Mar 16, 2022

Outra situação que observei é que hoje está caindo no timeout dos 60 segundos.

Funciona assim... A cada minuto o worker pega uma leva de 20 notificações e processa, essas 20 notificações podem ser desde a inserção de items, variações e imagens.

Aparentemente esse tempo não está sendo suficiente para retirar essa leva da fila pois cai nos 60 segundos a function é encerrada.

No app do sig2000 passei por esse problema, principalmente pelo fato da quantidade de itens ser grande, então quando gerava atualização de preço vários outros registros ficavam no final da fila e demoravam a ser atualizados, como exportação de ordens por exemplo.

Pra resolver isso separei cada resource em tópicos e os que demandavam mais registros dividi em outros também.

Pode ser interessante fazer isso aqui, ainda mais se estiver processando mais de uma loja, isso pode acumular bastante registro.

Querem que eu tente fazer isso aqui? @leomp12 e @matheusgnreis

@matheusgnreis
Copy link
Member Author

Certamente, o timeout estava sendo um erro desde o início quando os problemas estavam ocorrendo. Sempre havia as 20 notificações e dai um tempo dava um timeout de 60000ms e ai dava inatividade e rodava novamente.

Depois que começou a rodar assincronamente por loja, não estava chegando nem a rodar completamente o saveEcomProduct, pois quando checava se havia já o produto na API ou entrasse no parseProduct, o processo simplesmente morria. Quando retirei todos os awaits para um teste, começou a ocorrer, só que não estava certo, porque poderia gerar duplicação de produtos. Então, provavelmente no meio termo ali com tantas requisições estava dando esse timeout e encerrando.

@matheusgnreis
Copy link
Member Author

Antes de colocar pra rodar por loja, os processos estavam morrendo e não estava sendo possível criar o produto, além de ficar em travado na fila, rodando sempre os mesmos produtos por dias.

@leomp12
Copy link
Member

leomp12 commented Mar 16, 2022

Pelo que vi tá caminhando...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants