No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso Avanzado de PHP

Curso Avanzado de PHP

Héctor Benitez

Héctor Benitez

Async tasks

29/35
Recursos

Existen procesos que queremos ejecutar pero no queremos que el usuario se quede esperando por una respuesta. En muchos casos esos tiempos de espera serán muy grandes dependiendo del tamaño de los archivos.
La mejor solución es darle una respuesta inmediata al usuario como “Recibimos tu archivo, te enviaremos un correo cuando lo procesemos” y en otro proceso estaremos trabajando con el archivo y al finalizar enviaremos el correo. A esto lo llamamos tareas asíncronas.

Aportes 13

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Para no duplicar código lo que hice fue:
1.- Crear una carpeta llamada config en la raíz del proyecto y dentro de el un archivo llamado database.php.

curso-introduccion-php
	/app
	/config
		/database.php
	/db
	...

2.- CORTAR el código de Capsule de index.php y pegarlo en database.php, también es necesario COPIAR el código del Dotenv:

<?php

use Illuminate\Database\Capsule\Manager as Capsule;

$dotenv = new Dotenv\Dotenv(__DIR__ . '/..');
$dotenv->load();

$capsule = new Capsule;
$capsule->addConnection([
    'driver'    => getenv('DB_DRIVER'),
    'host'      => getenv('DB_HOST'),
    'database'  => getenv('DB_NAME'),
    'username'  => getenv('DB_USER'),
    'password'  => getenv('DB_PASS'),
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
    'port'      => getenv('DB_PORT')
]);

// Make this Capsule instance available globally via static methods... (optional)
$capsule->setAsGlobal();
// Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher())
$capsule->bootEloquent();

3.- Agregar en el composer.json nuestro archivo database.php al autoload:

{
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "files": ["config/database.php"]
    },
    ...

4.- Correr en nuestra terminal el siguiente comando composer dump-autoload.

Y listo debería funcionar sin necesidad de tener el código de Capsule en index.php ni en console.php.

Por si te preguntas por qué tuvimos que volver a importar dotenv y eloquent, es porque los comandos en consola nunca pasan por public/index.php

Esto porque realmente al usar los comandos tenemos otro punto de entrada (Que en este caso es command.php) y ahí en ningún momento se uso a dotenv ni Eloquent, es por eso que debemos volver a configurarlos

Of course, puedes poner esto en archivos separados y volver a importarlos:D!

En el caso de llevar el proyecto a producción en un Hosting Compartido, hay forma de ejecutar el CustomComand desde la App? (ya que no tendría acceso a consola)

Una consulta.
Cual es el contenido del modelo Message?
Porque solo quedo declarado y nada mas.

Gracias

Recomiendas el uso de Workerman? saludos

Excelente una vez más, que sencillo.

Async tasks
Existen procesos que queremos ejecutar pero no queremos que el usuario se quede esperando por una respuesta. En muchos casos esos tiempos de espera serán muy grandes dependiendo del tamaño de los archivos.
La mejor solución es darle una respuesta inmediata al usuario como “Recibimos tu archivo, te enviaremos un correo cuando lo procesemos” y en otro proceso estaremos trabajando con el archivo y al finalizar enviaremos el correo. A esto lo llamamos tareas asíncronas.

Existen procesos que queremos ejecutar pero no queremos que el usuario se quede esperando por una respuesta. En muchos casos esos tiempos de espera serán muy grandes dependiendo del tamaño de los archivos.

La mejor solución es darle una respuesta inmediata al usuario como “Recibimos tu archivo, te enviaremos un correo cuando lo procesemos” y en otro proceso estaremos trabajando con el archivo y al finalizar enviaremos el correo. A esto lo llamamos tareas asíncronas.

Que interesante

Genial!

👌👌👍

Eso lo hago yo en mi pagina web xdxd
Que hermoso ❤️