Queue worker shared hosting-on

Queue worker shared hosting-on

Ismerős a szituáció? Elkészült a kód, local-on jól fut viszont meg kellene oldani, hogy egy tárhelyszolgáltatónál is megfelelő módon küldje az e-maileket?

Így tudod megoldani!

Tehát a feladat: e-mail küldés 

.env fájlban beállítjuk, hogy adatbázis alapján futtassa a job-okat: QUEUE_CONNECTION=database. Fontos, hogy ezt követően ne felejtsük el futtatni a config frissítő parancsot (php artisan config:cache), különben nem fog érvényesülni a változtatásunk.

Feltételezzük, hogy a jobs és failed_jobs tábla elkészült már. Ha mégsem, akkor futtassuk a php artisan queue:table és php artisan migrate parancsokat.

E-mail küldő job működik és meg is hívjuk mondjuk egy Observerrel egy megrendelés létrejötte után - de ez igazából lényegtelen, az a fontos, hogy 'valahogy' meghívódjon az email küldő job.

Itt jön a probléma, hiszen a legtöbb tárhelyszolgáltatónál nincs lehetőség a queue worker futtatására, így máshogy kell megoldanunk.

A queue worker helyett a scheduler-t fogjuk használni.

Az app/Console/Kernel.php fájl schedule() metódusába írjuk a következőt:

Így minden percben indítunk egy worker-t az 'email' queue-ra, ami leáll miután végzett a feladatokkal anélkül, hogy közben egymásra futna.

Fontos, hogy ezután beállítsuk a cron job-ot is. 

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

És ennyi! :D 

Kapcsolódó címkék:
Megosztás:

További 'Szerver' cikkek