- Laravel yana ba da API ɗin haɗaɗɗiyar layi tare da direbobi masu yawa (database, Redis, SQS…) da rabuwa tsakanin haɗi da layukan ma'ana.
- Ayyuka suna ba da damar matsar da ayyuka masu nauyi zuwa bango, tare da goyan bayan ƙirar ƙira, tsaka-tsaki, ayyuka guda ɗaya, ɓoyewa, batches, da kirtani.
- Ana sarrafa ma'aikata tare da jerin gwano: aiki, Mai kulawa da umarni kamar jerin gwano: dakatarwa / layi: ci gaba, sarrafa sakewa, ƙarewar lokaci da fifiko.
- Akwai cikakken yanayin yanayin kasawa, saka idanu da gwaji (failed_jobs, jerin gwano: sake gwadawa, jerin gwano: saka idanu, Queue :: karya) wanda ke sa jerin gwano amintattu a samarwa.

Yi aiki tare da Laravel Kusan ya zama wajibi a cikin kowane babban aiki mai mahimmanci: aika imel, sarrafa CSV, tsarar PDF, girman hoto, kiran API na waje ... Idan duk abin da aka yi a cikin babban buƙatar HTTP, gidan yanar gizon ya zama jinkirin, kurakurai 500 sun bayyana, kuma mai amfani yana ƙarewa yana kallon wani allo mara kyau.
Labari mai dadi shine Laravel ya kawo a iko sosai da sassauƙan kayan aikin layi wanda ke ba ka damar wakilta waɗannan ayyuka masu nauyi zuwa tsarin baya, sarrafa su ta fifiko, haɗa su cikin batches, saka idanu su, sake gwada su lokacin da suka gaza, har ma dakatar da ma'aikata na dan lokaci Lokacin da lokacin kulawa yayi. Bari mu dubi (kuma mu bar kome ba) yadda za mu sami mafi kyawun abin da za mu samu, gami da yadda za a dakata, ci gaba, da sarrafa halayensa a cikin samarwa.
Mahimman ra'ayi: haɗin kai, jerin gwano, da direbobi
A Laravel, kafin dakatar da wani abu, kuna buƙatar fahimtar bambanci tsakanin hanyoyin layi da jerin gwano da kansu. a config/queue.php kana da tsararru connections inda kuka ayyana kowane baya: database, redis, beanstalkd, sqs, sync, null, failover, rabbitmq (idan kun kara) da sauransu.
Kowane haɗin yana iya samun da yawa layukan ma'ana (sunayen kamar default, emails, high, low, importsSiffar queue Kowane haɗin yana nuna wanda shine tsohuwar layi inda ayyuka zasu tafi idan ba a kayyade wani ba. onQueue()Ta wannan hanyar zaku iya yin abubuwa kamar:
- A sauri jerin gwano don imel ko gajerun ma'amaloli.
- Wani ƙananan fifiko don dogon ayyuka kamar sarrafa bidiyo ko manyan rahotanni.
- An raba jerin gwano ta nau'in ɗawainiya:
imports,notificaciones,reportes, Da dai sauransu
Lokacin da ka kaddamar da ma'aikaci tare da php artisan queue:workTa hanyar tsoho, yana sauraron jerin gwano da aka ƙayyade azaman tsoho akan haɗin da aka zaɓa. Idan kuna son ba da fifiko, kuna iya wuce layukan waƙafi da yawa:
php artisan queue:work redis --queue=high,default,low
Tare da wannan, ma'aikaci ya fara aiwatarwa. highsa'an nan tsoho sannan kawai lowWannan yana da mahimmanci lokacin da tsarin ya yi yawa kuma ba kwa son rahoton na mintuna 30 don toshe saƙon imel masu fifiko.
Direbobin layi da abubuwan da ake buƙata
Laravel yana ba da haɗin kai API don nau'ikan daban-daban direbobin layiDuk da haka, kowanne yana da nasa keɓantacce da abin dogaro. Zaɓin direban da ya dace shine mabuɗin kafin tattaunawa akan dakatar da ma'aikata.
Direba database
Direba database Yana adana ayyukan a cikin tebur SQL (yawanci jobsYana da sauƙi don saitawa kuma cikakke don ƙananan ayyuka ko mahallin ci gaba inda ba kwa son yin rikici tare da Redis ko SQS.
Matakai na asali:
- Ƙirƙirar ƙaura:
php artisan queue:table(ko a cikin sababbin sigogin, ya zo kamarcreate_jobs_tabletsoho). - Gudun ƙaura:
php artisan migrate. - Kafa QUEUE_CONNECTION=Tsarin bayanai a cikin
.envkuma tabbatar a cikiconfig/queue.phpque'default' => env('QUEUE_CONNECTION','database').
Yana da dadi kuma yana da ƙarfi, amma tare da dogayen layi da cunkoson ababen hawa zai iya zama matsala ta gaske. kwalban, Tun da komai yana tafiya ta hanyar bayanai iri ɗaya.
Direba Redis
Direba sake dubawa Daidaitaccen dokin aiki ne a samarwa. Yana da sauri, yana ba da damar ci-gaba fasali (kulle, iyakance ƙimar, makullin atomic, Horizon…) da ma'auni sosai.
Mahimman bayanai:
- Kuna buƙatar saita haɗin Redis a ciki
config/database.php. - Zaɓuɓɓuka
serializerycompressiondaga Redis Basu jituwa ba tare da direban layi. - Idan kayi amfani Redis ClusterDole ne sunayen layukan su kasance da alamar zanta, misali
{default}ta yadda duk maɓallan da ke cikin wannan jerin gwano su faɗi cikin rami ɗaya. - Zaɓin
block_forYana ba ma'aikaci damar toshewa yayin jiran ayyuka na 'yan daƙiƙa, maimakon ci gaba da jefa ƙuri'a: yana ajiye CPU kuma yana rage tambayoyin zuwa uwar garken Redis.
Alal misali:
'redis' => ,
Idan kun saka block_for = 0Ma'aikaci ya kasance a toshe har abada har sai wani aiki ya sami samuwa, wani abu da za ku tuna idan kuna son ya amsa da sauri ga sakonni kamar SIGTERM ko dakatar da umarni.
Sauran direbobi: SQS, Beanstalkd, banza, kasawa…
Baya ga bayanan bayanai da redis, Laravel yana goyan bayan sauran tsarin:
- Amazon SQSGudanar da layi akan AWS, tare da tallafi don FIFOƘungiyoyin saƙo, ƙaddamarwa, da saitunan gani na ci gaba. Yana buƙatar SDK.
aws/aws-sdk-php. - BeanstalkdMai sauri da sauƙi, ta amfani da kunshin
pda/pheanstalk. - Gama aiki: yana aiwatar da ayyuka nan da nan a cikin tsari guda. Yana da amfani wajen haɓakawa ko gwaji, amma a cikin samarwa yana kama da rashin amfani da layukan kwata-kwata.
- null: Yi watsi da ayyuka da zarar an "aiko". Ana amfani da shi don kashe tsarin layi gaba ɗaya.
- failoverWannan yana ba ku damar saita haɗin kai da yawa, kuma idan na farko ya gaza, Laravel yayi ƙoƙarin tura aikin zuwa na gaba a cikin jerin. Cikakke ga mahalli inda babban samuwa yana da mahimmanci.
A matakin dakatarwa da ci gaba da ma'aikata, dabaru kusan iri ɗaya ne ba tare da la'akari da direba ba, saboda ana sarrafa shi daga umarnin Artisan da aji. Mai aikiba daga layin baya ba.
Ƙirƙirar aikin yi da ƙirar ƙira
Un Aiki A cikin Laravel, aji ne kawai wanda ke ɗaukar aikin da za a aiwatar a cikin jerin gwano. Yawanci ana yin sa tare da Artisan kuma an adana shi a ciki app/Jobs.
Don ƙirƙirar ɗaya:
php artisan make:job ProcessPodcast
Ajin da aka samar aiwatarwa ShouldQueue kuma yawanci yana amfani da halaye Dispatchable, InteractsWithQueue, Queueable y SerializesModelsZuciya tana cikin hanyar handle()wanda shine abin da ma'aikaci ya yi idan aikin ya zo.
Ɗayan daki-daki mai ƙarfi shine Serialization ta atomatik na ƙirar ƙiraIdan ka karɓi samfuri a cikin Maginin Ayuba, Laravel baya ƙara duk abin zuwa jerin gwano, kawai mai gano shi. Lokacin da aka sarrafa aikin, yana sake gina samfurin daga ma'ajin bayanai tare da alaƙar da aka ɗora.
Misali na yau da kullun (a cikin pseudocode, don gujewa maimaita shi da baki):
- Mai gini yana karba Podcast $ podcast.
- Halin
SerializesModelsYana da alhakin adana ID ɗin. - En
handle(AudioProcessor $processor)Kuna yin aiki tuƙuru ( sarrafa sauti, misali).
Idan ba ka son alaƙar da ke cikin ƙirar ta kasance a jera su (don haka abin da aka biya ba shi da yawa), zaku iya amfani da $model->withoutRelations() ko a cikin PHP 8 sifa # akan dukiyar magini da aka inganta.
Dogaro da allura a cikin hanyar rikewa
Wani fa'ida shine zaka iya allura ayyuka kai tsaye cikin hanyar rikewa (kamar dai mai sarrafawa ne), saboda Laravel kuma yana amfani da kwandon sabis a cikin Ayyuka. Misali, kuna iya buƙatar a AudioProcessorAbokan ciniki na HTTP, wuraren ajiya, da sauransu, kuma tsarin yana kula da warware su.
Idan kana buƙatar ultra-fine sarrafa abin da ake kira da handlezaka iya amfani Container::bindMethod() a cikin mai bada sabis kuma ayyana dabarar allurar da kanka, amma a mafi yawan lokuta babu buƙatar dagula abubuwa sosai.
Aiki Middleware
Kamar yadda hanyoyi ke da kayan tsakiya, Ayyuka kuma na iya samu takamaiman middleware wanda ke gudana kafin da kuma bayan aikin. Wannan yana rage yawan maimaita lambar a cikin hanyoyin handle() kuma yana da amfani musamman ga:
- Ƙayyadadden ƙima da Redis.
- Guji zoba na ayyukan da suka shafi albarkatu iri ɗaya.
- Keɓancewa na yau da kullun don APIs marasa ƙarfi.
- Tsallake ayyuka a ƙarƙashin wasu sharuɗɗa (
Skipmiddleware).
Ana saka Middleware a ciki app/Jobs/Middleware kuma an dawo dasu daga hanyar middleware() Daga Ayuba. Misalin tunani:
public function middleware(): array { return ;
Nau'ikan ayyuka na musamman: na musamman, rufaffen, da kulle
Laravel yana ba ku damar yiwa wasu ayyuka alama azaman na musamman don tabbatar da cewa ba a taɓa yin layi guda biyu iri ɗaya ba a lokaci guda. Ana samun wannan ta hanyar aiwatar da hanyar sadarwa ShouldBeUnique o ShouldBeUniqueUntilProcessingkuma yana goyan bayan ayyana maɓalli uniqueId() da lokaci uniqueFor.
Wannan ya dace da abubuwa kamar:
- Sake ƙididdige ƙididdigar bincike na samfur: sau ɗaya kawai ga kowane samfur har sai ya gama.
- Aiki tare tare da sabis na waje waɗanda ba sa ba da izinin buƙatun lokaci ɗaya don albarkatu iri ɗaya.
A ƙasa, Laravel yana amfani da a atomic kulle na cache (Redis, memcached, database, da dai sauransu). Hakanan zaka iya zaɓar direban cache don wannan makullin tare da uniqueVia().
Bugu da kari, akwai ke dubawa ShouldBeEncrypted, da abin da ka nuna cewa cikakken Ayuba ne Shigar da lambar ku kafin shigar da jerin gwanoYana da amfani sosai lokacin wucewar bayanai masu mahimmanci kuma ba kwa son ya yi tafiya cikin rubutu a sarari ta hanyar Redis, SQS ko bayanan bayanai.
Aika, jinkirta, da aiwatar da ayyuka ta hanyoyi daban-daban
Da zarar an ayyana aikin ku, kun ƙaddamar da shi da Job::dispatch() daga masu sarrafawa, masu sauraron taron, umarnin Artisan, ko ma rufewa. Matsalolin da kuka wuce zuwa dispatch Suna zuwa kai tsaye wurin wanda ya gina Ayuba.
Bambance-bambance masu ban sha'awa:
dispatchIf()ydispatchUnless()don daidaita jigilar kayayyaki a cikin layi ɗaya.delay()ta yadda ba za a iya sarrafa aikin ba har sai takamaiman kwanan wata/lokaci.dispatchAfterResponse()oafterResponse()endispatch()Rufewa, wanda ke jinkirta aiwatarwa har sai an aika da martanin HTTP, amma a cikin tsarin PHP guda ɗaya.dispatchSync()don gudanar da Ayuba tare (ba tare da shiga cikin layi ba) amma sake amfani da aji iri ɗaya.- Haɗi na musamman kamar
deferredobackgrounddon aiwatarwa bayan amsawa, a cikin tsari ɗaya ko a cikin sabon tsarin PHP.
A ƙarshe, zaku iya ƙayyade haɗi da jerin gwano tare da hanyoyin da aka ɗaure onConnection() y onQueue(), ko dai lokacin aikawa ko cikin maginin Ayuba.
Kyakkyawan sarrafawa: sakewa, koma baya, ƙarewar lokaci, da sarrafa kuskure
Babban sashi na aiki tare da layi a Laravel yana yanke shawara Sau nawa don sake gwada aikitsawon lokacin da za a jira tsakanin ƙoƙarin da lokacin la'akari da gazawar.
Akwai zaɓuɓɓuka:
--triesenqueue:workdon saita matsakaicin adadin ƙoƙarin don duk ayyukan ma'aikacin (sai dai in Ayuba ya bayyana nasa)$triesotries()).$triesko wata hanyatries()a cikin Ajin Ayuba don sarrafa kowane Aiki.retryUntil()don ce: "Sake gwada gwargwadon abin da kuke so har zuwa wannan lokacin, bayan haka, gazawar ne." Idan ya zo daidai datries, umarniretryUntil.$maxExceptionsdon yanke lokacin da matsalar ta kasance saboda keɓancewar da ba a kula da su akai-akai.$timeouto--timeoutdon nuna adadin daƙiƙa nawa Aiki zai iya gudu kafin ma'aikaci ya kashe tsarin yaro.$failOnTimeoutdon sanya alamar aikin a matsayin kasawa idan an ƙare lokaci.$backoffhanyarbackoff()don ayyana tsawon lokacin da za a jira tsakanin sakewa, har ma da ƙima mai ma'ana.
Idan aiki ya jefa keɓancewar da ba a kama ba, Laravel zai ... sake dawowa cikin wutsiya har sai an gama yunƙurin da aka tsara. Kuna iya sarrafa wannan da hannu da release($segundos) o fail($exception) lokacin da kake son sanya alamar aiki da gangan a matsayin kasa.
Ayyukan da ba a yi nasara ba, tebur ɗin da ba a yi nasara ba da datsa
Sa’ad da Ayuba ya gaji da ƙoƙarce-ƙoƙarcensa, sai a yi la’akari da shi kasa aiki kuma Laravel ya saka shi a cikin tebur failed_jobs (ko a cikin DynamoDB idan kun saita ta haka). Wannan tebur yana adana UUID, haɗin kai, jerin gwano, nauyin aiki, da ban da wanda aka jefa.
Umarni masu amfani:
php artisan queue:faileddon lissafta wadanda suka kasa.php artisan queue:retry <id|all>don sake gwada su.php artisan queue:forget <id>don share daya.php artisan queue:flushdon share duk (tare da zaɓi na sa'o'i a cikin sababbin sigogi).php artisan queue:prune-failed --hours=48don datse tsoffin bayanan ta atomatik.
A cikin Ayyuka za ku iya ayyana hanya failed(Throwable $exception) Don ƙarin tsaftacewa: sanar da mai amfani, mayar da ayyuka na ɓangarori, rubuta rajistan ayyukan musamman, da sauransu. Lura cewa an ƙirƙiri sabon misali na Ayuba don kira. failed()Don haka, kar a dogara ga canje-canjen dukiya da aka yi a ciki handle().
Ayyukan aiki: batches na ayyuka da haɗa su da igiyoyi
Lokacin da zaka jefa Daruruwa ko dubban ayyuka masu alaƙa (misali, shigo da katuwar CSV a cikin chunks, sarrafa fayiloli a cikin batches, tsaftace bayanan, da sauransu), yana da kyau a yi amfani da aikin na batches daga Laravel.
Matsakaicin kwarara:
- ƙirƙirar tebur
job_batchesconphp artisan queue:batches-table && php artisan migrate. - Yi Alama Ayyukan da za su kasance ɓangare na batches tare da sifa
Batchable. - Amfani
Bus::batch()don aika saitin Ayyuka, tare da sake kirathen,catchyfinally. - Samun dama ga tsari daga kowane Aiki tare da
$this->batch()kuma duba idan an soke shi. - Yiwuwar ƙara ƙarin Ayyuka zuwa rukuni mai gudana tare da
$this->batch()->add().
Batches suna haɗuwa da kyau tare da kirtani (sarƙoƙiKuna iya samun kirtani a cikin tsari ko batches a matsayin abubuwa na babban kirtani. Wannan yana da amfani musamman lokacin da kake son kirtani da yawa suyi aiki "a layi daya" kuma su jawo wani abu idan sun gama duka.
Kisa na ma'aikata, fifiko, da turawa
Duk sihirin layi yana faruwa saboda kuna da ma'aikata ɗaya ko fiye yanã gudãna da umurnin queue:work (o queue:listen(kodayake na karshen ba shi da inganci). Waɗannan matakan daemons ne masu tsayin daka waɗanda ke sauraron layinsu.
Zaɓuɓɓukan maɓalli na queue:work:
- Haɗi:
php artisan queue:work redis,queue:work database, Da dai sauransu - Kasidu:
--queue=high,default,lowdon ba da fifiko. - - sha daya: aiwatar da aiki guda ɗaya da fita.
- - max-aiki: aiwatar da ayyukan X da ƙarewa (don sake kunna ma'aikata lokaci-lokaci da 'yantar da ƙwaƙwalwar ajiya).
- - max-lokaci: tafiyar matakai na tsawon dakiku N sannan ya fita.
- –barci: seconds na jira lokacin da babu ayyukan yi.
- – tsayawa-lokacin- wofi: yana ɓarna layin kuma yana rufewa da tsabta (mai kyau a cikin mahallin Docker ko ayyuka na lokaci-lokaci).
- -lokaci ya ƙare: seconds na lokacin ƙarewar kowane aiki, kamar yadda muka ambata a baya.
- -Gafin aiki: don aiwatar da ayyuka ko da app yana cikin yanayin kulawa.
Tunda waɗannan hanyoyin suna daɗewa, a cikin samarwa a tsari duba A matsayin mai kulawa (a cikin Linux) don fara ma'aikatan X, sake kunna su idan sun yi karo, da sarrafa rajistan ayyukan. Ƙaƙƙarfan ƙaƙƙarfan ƙaƙƙarfan ƙaƙƙarfan shinge na mai kulawa don Laravel yana bayyana:
- umurnin tare da
php artisan queue:work ...kankare. - lambobi don nuna adadin ma'aikata da za a ƙaddamar a layi daya.
- Hanyoyin shiga, mai amfani, sake kunnawa ta atomatik, da sauransu.
Tsayawa da ci gaba da layukan layi a Laravel
Bari mu isa ga abin da ke yawan sha'awar kulawa: Yadda ake dakatar da ma'aikata a cikin layi ba tare da tsayar da su da adduna ba kuma ba tare da barin ayyukan yi ba. Laravel yana ba da hanyoyi da yawa, wasu sababbi, wasu na gargajiya, don sarrafa wannan.
Dakata: layi:dakata da katse sigina
A cikin sigar kwanan nan, Laravel yana ƙara takamaiman umarni don dakatar da ci gaba da aiwatarwa na ma'aikata:
php artisan queue:pause: yana gaya wa tsarin ya daina ɗaukar sabbin ayyuka, amma a bar waɗanda ke kan gaba su ƙare.php artisan queue:continue: ya dawo sarrafa sabbin ayyuka daga inda ya tsaya.
Waɗannan umarnin suna aiki ta hanyar aikawa sigina ga ma'aikata ta hanyar caching tsarin da Laravel ke amfani da shi a ciki. Shi ya sa yana da mahimmanci a sami ingantaccen direban cache (memcached, redis, database, file, da dai sauransu) koda kuwa cache ɗin ku kanta wani abu ne daban.
Muhimmi: Dakatar da jerin gwano ko ma'aikaci Ba ya soke ko share ayyukan da aka riga aka liƙa.Yana kawai hana ƙarin ayyuka daga cirewa daga jerin gwano yayin da aka dakata.
Zabe na rushewa da tasiri kan aiki
Duk lokacin da ma'aikaci ya gama aiki, Laravel yana bincika cache don kowane alamun sake farawa, dakata ko ci gabaWannan yana da tsada mara tsada, amma akwai. Idan kun mai da hankali sosai kan aiki kuma kun san ba za ku buƙaci dakatarwa ko sake kunna ma'aikata daga umarni ba, zaku iya kashe wannan zaɓe ta hanyar kira:
Queue::withoutInterruptionPolling();
Ko ma daidaita a tsaye Properties na Illuminate\Queue\Worker don kashe takamaiman taɓawa ($sake farawa, $an dakatarwaKoyaya, idan kun yi haka sannan kuyi ƙoƙarin amfani da shi queue:pause o queue:restartma'aikata Ba za su gano baShawarar ƙira ce da yakamata a yi la'akari da ita a hankali.
Dakata da hannu tare da Mai kulawa ko Docker
Baya ga umarnin Laravel na kansaA cikin wuraren samarwa, abubuwa galibi ana “dakata” a kaikaice:
- Tsaida shirin a cikin Mai Kulawa (
supervisorctl stop laravel-worker:*), wanda ke kashe ko dakatar da ma'aikata. - Amfani – tsayawa-lokacin- wofi a cikin turawa don barin ma'aikatan su gama abin da ke cikin layi sannan a rufe.
- A cikin Docker, barin kwantena ta aiwatar da
--stop-when-emptysannan ya kashe.
Bambanci da queue:pause Ta hanyar dakatar da ayyukan gaba ɗaya, za ku daina sarrafa ayyukan har sai ma'aikatan su sake farawa. dakatarwar ciki Kuna iya kiyaye tafiyar matakai a cikin ƙwaƙwalwar ajiya, jiran umarni continueWannan yana da amfani ga saurin jujjuyawa baya ko gajeriyar lokacin kulawa.
Ma'amalar bayanan bayanai da after_commit
A classic: korar Ayyuka a cikin ma'amaloli daga database. Idan ba ku yi hankali ba, ma'aikaci zai iya gudanar da aikin kafin a yi alƙawarin, kuma samfurin ko bayanan da kuke tsammanin bazai kasance a cikin bayanan ba tukuna.
Don guje wa wannan rawa, kuna da zaɓuɓɓuka biyu:
- Kunna
'after_commit' => truea cikin tsarin haɗin kan layi. Don haka, duk wani Aiki da aka aika a cikin ma'amala an jinkirta shi a ciki har sai an tabbatar da shi. - Yi amfani da hanyoyin kowane aiki
afterCommit()obeforeCommit()lokacin aikawa, don tilasta hali kawai a cikin takamaiman Ayyuka.
Idan ciniki ya koma baya, ayyukan da aka aika a lokacin za su kasance jefar da ba tare da shiga cikin jerin gwano ba, wanda shine ainihin abin da ke da mahimmanci don kiyaye daidaito.
Kulawa, tsaftace layi, da gwaji
Da zarar an yi layi da gudu da gaske, bai isa kawai a jefar da Ayyuka ba kuma ku manta da shi; yana da kyau duba da gwadawa yadda komai ya kasance.
Kayayyakin aiki da umarni masu amfani:
queue:cleardon komai wani takamaiman jerin gwano (SQS, Redis, database).queue:monitordon saka idanu da adadin ayyuka a cikin wasu layukan layi da jawo taronQueueBusyidan sun ƙetare iyaka.- Ayyukan Ayyuka kamar yadda
Queue::before,Queue::after,Queue::loopingyQueue::failingdon haɗa dabaru na al'ada (gigiyoyin, ma'auni, rollbacks, da sauransu). - Karya a gwaji ta amfani
Queue::fake()yBus::fake()don tabbatar da cewa an aika Ayyuka, igiyoyi ko batches ba tare da aiwatar da su ba.
A cikin gwaje-gwaje za ku iya bayyana abubuwa kamar "Wannan Aiki an manna shi sau X", "An aika da sarkar tare da waɗannan Ayyuka a cikin wannan tsari" ko "ba a yi layi na musamman ba", wanda ke ba da tsaro mai yawa a cikin hadaddun magudanar ruwa.
Tare da wannan tsarin halittu gabaɗaya - direbobi kamar Redis ko SQS, ƙwararrun ayyuka masu kyau, tsaka-tsaki don daidaitawa mai kyau, batches, sarƙoƙi, sake gwadawa, ma'aikata masu kulawa, da umarni kamar su. queue:pause y queue:continue- Laravel yana ba ku damar sarrafa bayanan bayanan har zuwa millimita, daga aika imel na yau da kullun zuwa tsarin gine-ginen da aka rarraba tare da gazawa, tabbatar da cewa aikace-aikacen ku ya ci gaba da amsawa cikin sauri a layin HTTP yayin da ake yin aiki mai nauyi a ƙasa ba tare da toshe mai amfani ba.
Abinda ke ciki
- Mahimman ra'ayi: haɗin kai, jerin gwano, da direbobi
- Direbobin layi da abubuwan da ake buƙata
- Ƙirƙirar aikin yi da ƙirar ƙira
- Nau'ikan ayyuka na musamman: na musamman, rufaffen, da kulle
- Aika, jinkirta, da aiwatar da ayyuka ta hanyoyi daban-daban
- Kyakkyawan sarrafawa: sakewa, koma baya, ƙarewar lokaci, da sarrafa kuskure
- Ayyukan da ba a yi nasara ba, tebur ɗin da ba a yi nasara ba da datsa
- Ayyukan aiki: batches na ayyuka da haɗa su da igiyoyi
- Kisa na ma'aikata, fifiko, da turawa
- Tsayawa da ci gaba da layukan layi a Laravel
- Ma'amalar bayanan bayanai da after_commit
- Kulawa, tsaftace layi, da gwaji