es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Los crones de Laravel pueden utilizar la misma conexión de base de datos si se ejecutan al mismo tiempo en Laravel 5.8?

He configurado 2 trabajos programados de Laravel que ejecutan consultas a la base de datos:

$schedule->command(MyCommand::class, ['param', '1'])->daily('1:30');
$schedule->command(MyCommand::class, ['param', '2'])->daily('1:30');

Y el comando es el siguiente:

use Illuminate\Console\Command;

class MyCommand extends Command
{
   $signature = "my:command --param {param}"

   public function run()
   {
      $sql = DB::select(^someheavyquery^);
      // Hacer otras cosas
   }
}

Ambos trabajos programados se ejecutan en un solo servidor con el siguiente crontab:

          • php artisan schedule:run > /home/ubuntu/cron.log 2>&1

¿En este caso pueden ambas ejecuciones de MyCommand compartir la misma conexión de base de datos si se ejecutan en el mismo servidor en el mismo proceso de cron?

Lo que estoy preguntando es si en cada ejecución, el controlador de base de datos de Laravel utilizará la misma instancia de PDO y el mismo socket de conexión a la base de datos si ambos comandos se ejecutan al mismo tiempo en el mismo servidor.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, ambas ejecuciones de MyCommand pueden compartir la misma conexión de base de datos si se ejecutan en el mismo servidor y en el mismo proceso cron. El controlador de base de datos de Laravel utilizará la misma instancia PDO y el mismo socket de conexión a la base de datos si ambos comandos se ejecutan al mismo tiempo en el mismo servidor.

Comments are closed.