Laravel rindas sistēma apstrādā darba atkārtotus atkārtojumus un neveiksmes šādā veidā:
Darba atkārtojumi
1. Konfigurējami atkārtojumi: jūs varat konfigurēt darbus, kas jāatkārto, ja tie neizdodas pagaidu kļūdu dēļ, uzlabojot sistēmas uzticamību. Tas tiek darīts, iestatot īpašuma klasē “mēģināt” īpašumu [2] [3].
2. Automātiskās atkārtotās atkārtošanās: Laravel nodrošina automātiskus atkārtojumus neveiksmīgiem darbiem. Ja darbs neizdodas, tas tiks atkārtots noteikts reižu skaits, pirms tas tiks atzīmēts kā neveiksmīgs [2] [3].
3. Darba atkārtota atkārtota loģika: Darba klasē varat definēt “neveiksmīgu” metodi, lai apstrādātu darba neveiksmes. Šī metode tiek izsaukta, ja darbs neizdodas un ļauj veikt darbību specifiskas darbības [3].
Darba neveiksmes
1. Neveiksmīga darba tabula: Laravel veikali neizdevās darbi “neveiksmīgajā_jobs” datu bāzes tabulā. Šajā tabulā ir informācija par darba ID, savienojumu, rindu un neveiksmes laiku [3].
2. Neveiksmīgu darbu apskate: jūs varat apskatīt visus neveiksmīgos darbus, izmantojot “Rindu: neveiksmīgu” amatnieku komandu. Šajā komandā ir uzskaitīts darba ID, savienojuma, rinda un neveiksmes laiks [3].
3. Neveiksmīgu darbu atkārtošana: jūs varat mēģināt atkārtot neveiksmīgus darbus, izmantojot komandu “Rinda: Retry”. Šī komanda pieņem darba ID kā argumentu un atkārto darbu. Varat arī atkārtot visus neveiksmīgos darbus, izmantojot `rindu: atkārtoti atkārtojiet visu` [3] [5].
4. Neizdevušo darbu dzēšana: jūs varat izdzēst neveiksmīgus darbus, izmantojot “Rinda: Aizmirst” amatnieku komandu. Šī komanda pieņem darba ID kā argumentu un izdzēš darbu. Jūs varat arī izdzēst visus neveiksmīgos darbus, izmantojot `rindu: flush` [3].
Secinājums
Laravel rindas sistēma nodrošina stabilus mehānismus, lai apstrādātu darbu atkārtotus atkārtojumus un neveiksmes. Konfigurējot atkārtotus atkārtojumus, skatot neveiksmīgus darbus, atkārtoti pārbaudot neveiksmīgus darbus un izdzēšot neveiksmīgus darbus, jūs varat nodrošināt savu fona apstrādes uzdevumu uzticamību un efektivitāti.
Atsauces:[1] https://laracasts.com/discuss/channels/laravel/laravel-queue-retry-jobs-5-times
[2] https://wpwebinfotech.com/blog/laravel-queue-system/
[3] https://laravel.com/docs/5.1/queues
[4] https://laracasts.com/discuss/channels/laravel/queue-job-retry-after-x-minutes-if-failed
[5] https://stackoverflow.com/questions/30778924/laravel-4-retry-all-failed-jobs