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
Instagram poszt
További 'Szerver' cikkek
Ha nem vagyunk benne biztosak, hogy a szerver vagy bármilyen más felhasználó tudja olvasni a kívánt fájlokat, akkor a következő a megoldás!
Homestead-et használva előfordulhat, hogy egy package telepítése közben elfogy a memória.
