Executando verificação de segurança...
2

Meus 2 cents,

Alguns pitacos:

  1. Nao parece ser problema do processo em si - mas da execucao concorrente

  2. Como o processo eh executado de hora eh hora - pode ser que ele tente uma execucao sendo que a anterior ainda nao terminou ou ficou travada. Neste caso, voce pode colocar algum semaforo/flag para indicar que o processo ainda esta em execucao e evitar novas execucoes.

2.1. Seria interessante que neste caso, quando o flag indicar que ainda tem processo em execucao, seja enviado um email (ou semelhante) para o sysadmin verificar o que pode ter acontecido com o processo.

  1. Como voce ja indicou o SQL problematico (...$student = StudentFreeCourses::with('lyAluno'...) e logo depois tem um "$student->save()" da para entender que eh ali que a excecao ocorre, mas devido a esta questao de dupla execucao

  2. Chutaria como bandido um "dispatch" ou o "update" no final.

De qualquer forma, o flag para evitar dupla execucao deve resolver.

OBS: "resolver" aqui significa: a excecao nao ocorrer. Mas seria interessante descobrir porque esta demorando tanto para executar, afinal 1 hora para um processo que parece simples nao faz muito sentido.

Saude e Sucesso !

Carregando publicação patrocinada...