[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
João Pedro Lima Santos
Criador João Pedro Lima Santos 01/08/2022

Olá Professor, poderia me dizer se terá em algum momento do curso JOBS com grandes cargas. Por exemplo de arquivos excel, e jogar os dados desse arquivo no BD. Que esse tipo de assunto me interessa muito e estou com grande dificuldade de colocar em prática de forma 100% seja local ou servidor, as minhas filas sempre falha por timeout ou outro tipo de problema e eu sinceramente ainda não entendi muito bem como funciona. No caso aqui uso o Laravel Excel pra ler os arquivo em chunk mas com JOBS.

Manager Carlos Ferreira 01/08/2022

Olá, João!
Tudo bem?

Anotado a ideia de trabalhar com algo que faça o I.O. em disco.

O seu timeout também pode ser relacionado a config do PHP, qual o seu setup?

Carlos Ferreira
Criador João Pedro Lima Santos 01/08/2022

Então professor, subi tudo pra o máx que consegui. Timeout = 0 que vi que talvez fosse algo como infinito ou algo do gênero. O que está acontecendo realmente é o Job está sendo executado logo após um tempo ele some se me dar nenhum erro nem na fails_jobs nem nas tabelas de log que fiz coloquei log em tudo.
E sobre a ideia é essa mesmo. fazer carga de grandes arquivos para o banco de dados, aqui eu tenho 4 Jobs:

1 - Job responsável por pegar o arquivo que foi feito o upload com TUS(resumable file uploads) https://tus.io/ e pegar somente a primeira coluna do arquivo (header), para que o usuário possa mapear as colunas.
2 - Job responsável por pega os dados do mapeamento feito pelo usuário, o arquivo e ler o arquivo juntamente com os dados do mapeamento e jogar esses dados em uma tabela genérica e atualiza o processo pra 3 etapa
3 - Responsável por pegar os dados da genérica e dar um insert na table principal
4 - Atualiza o status do processamento pra relatório que a ideia é que com esses dados, o usuário possa gerar vários tipos de relatórios

Porém está gargalando logo no segundo Job responsável por pegar os dados brutos, ele até inseri e tal. Mas dependendo do tamanho do arquivo para no meio do processo.

João Pedro Lima Santos
Manager Carlos Ferreira 01/08/2022

Está trabalhando com Docker?
Será necessário mudar as limitações default do arquivo php.ini

Carlos Ferreira
Criador João Pedro Lima Santos 01/08/2022

Professor pior que não, aqui as maq até mesmo dos programadores são bloqueadas pra isso seu eu pensar em rodar vai dar tela azul. É uma empresa de auditoria, então precisa ter todo esse esquema ai foi um parto pra liberar a extensão do VUE JS pro chrome.

Eu vou precisar rever isso, e no servidor a aplicação está dividindo o espaço com uma outra aplicação que está de pé a 8 anos quase com cerca de 800 pessoas acessando diariamente.

Eu vou rever o php.ini, mas acredito que o gargalo não esteja nele e sim na minha falta de experiência com filas e tudo mais.

João Pedro Lima Santos
Manager Carlos Ferreira 01/08/2022

Entendi, ambiente necessita de burocracia.

--

Como é um maquina compartilhada, usar Docker seria uma boa para vocês, porque cada projeto rodaria de forma independente (com recursos limitados por projeto, memória, cpu, disco e etc);

Carlos Ferreira
Criador João Pedro Lima Santos 01/08/2022

Sim professor, aqui é bem burocrático mesmo no quesito ambiente e ainda tem essa concorrência entre sistemas no mesmo servidor.
A provável solução que ainda não está 100% foi usar o Python invés de criar filas com chunks enormes a gente usa o Python com Pandas ele nem precisa de filas pois é só chamada de arquivo ele faz o processamento de uma base de 40k de linhas em 15 seg.
Mas como é algo que ainda estamos testando não posso dar total certeza assim que tivermos eu passo um feedback. Porém ainda sim é um conteúdo que necessito muito aprender e entender o que poderia melhorar,

João Pedro Lima Santos
Manager Carlos Ferreira 01/08/2022

Entendi amigo, qualquer coisa que precisar de mim, estou à disposição! :-)

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!