Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

218
Visualizações
La cola de Laravel no se envía aleatoriamente

Estoy tratando de enviar trabajos desde un controlador, pero a veces la cola funciona y, a veces, ejecuta el código de inmediato. Por otro lado, el envío desde un comando funciona bien, así que me pregunto cuál podría ser la diferencia.

Cosas que he probado:

  • Probé la base de datos y las conexiones de Redis y obtuve el problema para ambas conexiones
  • Sin ejecutar queue listen/work, el trabajo se ejecutará aleatoriamente, por lo que listen/work no puede ser el problema
  • Se revisó el registro del servidor web/PHP en busca de errores, sin resultado
  • Algo sale mal antes de la función de despacho estático. Cuando coloco un dado en la función de envío estático, a veces matará la aplicación y, a veces, seguirá ejecutando la decodificación en el identificador inmediatamente...

proveedor/laravel/framework/src/Illuminate/Foundation/Bus/Dispatchable.php

 public static function dispatch() { die('xxx'); return new PendingDispatch(new static(...func_get_args())); }

Estoy tratando de encontrar lo que sucedió antes de la función de despacho, pero no puedo encontrar ninguna función que se ejecute antes de la función de manejo estático. Tengo la sensación de que algo está fallando en PHP y, alternativamente, ejecuto el trabajo de inmediato, pero no puedo encontrar dónde sucede eso en el núcleo.

Controlador

 class CreateTestJob { public function __invoke(Request $request) { TestJob::dispatch(rand(0, 999999)); } }

Trabajo

 class TestJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; public function __construct($test) { $this->test = $test; } public function handle() { sleep(30); echo 'done'; } }

También traté de crear un error de sintaxis en la función de manejo de TestJob para poder ver el seguimiento de la pila, pero muestra "1 marco desconocido". me pregunto que es eso

seguimiento de pila

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

  1. puede verificar la tabla fail_jobs si hay algún error mientras ejecuta su trabajo.

  2. El trabajo se ejecutará inmediatamente solo cuando use un controlador síncrono o un despacho síncrono (para uso en desarrollo local).

    <?php Somejob::dispatchSync();

  3. Los trabajos en Redis y la conexión a la base de datos se ejecutarán solo cuando ejecute el trabajador de la cola.

    php artisan queue:work

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda