PHP Academy · पाठ

Jobs बनाना और डिस्पैच करना

Artisan से job क्लास जनरेट करें और उसे नियंत्रकों से डिस्पैच करें

पाठ 2, कुल 4 में से13 चरण

Jobs बनाना और डिस्पैच करना, CoddyKit पर PHP Academy का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह PHP Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। PHP Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

कार्य क्या है

कार्य एक PHP वर्ग है जो कतार में रखे गए काम की एक इकाई को समाहित करता है। प्रत्येक कार्य handle() लागू करता है, जिसे कतार वर्कर कार्य चलाने के लिए कॉल करता है।

कार्य बनाना

कार्य वर्ग बनाने के लिए Artisan का उपयोग करें। --queue ध्वज इसे कतार में रखने योग्य बनाता है (डिफ़ॉल्ट रूप से)।

$ php artisan make:job SendWelcomeEmail

कार्य वर्ग की संरचना

किसी कार्य में handle() विधि होती है और यह अपने कंस्ट्रक्टर के माध्यम से डेटा प्राप्त कर सकता है।

<?php
namespace App\Jobs;

use App\Models\User;
use App\Mail\WelcomeEmail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\SerializesModels;

class SendWelcomeEmail implements ShouldQueue
{
    use Dispatchable, Queueable, SerializesModels;

    public function __construct(private User $user) {}

    public function handle(): void
    {
        Mail::to($this->user)->send(new WelcomeEmail($this->user));
    }
}

कार्य भेजना

अपने ऐप्लिकेशन में कहीं से भी कार्य भेजें।

<?php
// Dispatch to queue:
SendWelcomeEmail::dispatch($user);

// Dispatch with delay:
SendWelcomeEmail::dispatch($user)->delay(now()->addMinutes(10));

// Dispatch synchronously (bypass queue):
SendWelcomeEmail::dispatchSync($user);

कार्य भेजने वाले सहायक

आप वैश्विक dispatch() सहायक का भी उपयोग कर सकते हैं।

<?php
dispatch(new SendWelcomeEmail($user))
    ->onQueue("emails")
    ->delay(now()->addHour());

onQueue()

कार्य भेजते समय किसी विशिष्ट नामित कतार को लक्षित करें।

<?php
SendWelcomeEmail::dispatch($user)->onQueue("emails");

onConnection()

किसी विशिष्ट कतार कनेक्शन को लक्षित करें (जैसे, एक कार्य के लिए SQS और दूसरे के लिए Redis)।

<?php
SendWelcomeEmail::dispatch($user)->onConnection("sqs");

मॉडलों को क्रमबद्ध करना

SerializesModels ट्रेट यह सुनिश्चित करता है कि कार्य को भेजे गए Eloquent मॉडल ID द्वारा क्रमबद्ध किए जाएँ और वर्कर द्वारा डेटाबेस से फिर से प्राप्त किए जाएँ — इससे पुराना डेटा उपयोग होने से बचता है।

afterResponse()

HTTP प्रतिक्रिया उपयोगकर्ता को भेजे जाने के बाद कार्य भेजें — उपयोगकर्ता को कार्य भेजने में लगने वाले अतिरिक्त समय की प्रतीक्षा नहीं करनी पड़ती।

<?php
App::terminating(fn () => SendWelcomeEmail::dispatch($user));

कार्यों का परीक्षण

वास्तव में कार्य चलाए बिना उनके भेजे जाने की पुष्टि करने के लिए परीक्षणों में Queue::fake() का उपयोग करें।

<?php
Queue::fake();
$this->post("/register", $data);
Queue::assertPushed(SendWelcomeEmail::class);

अद्वितीय कार्य

समान डेटा वाले दोहराए गए कार्यों को कतार में जमा होने से रोकने के लिए ShouldBeUnique लागू करें।

सारांश

Artisan से कार्य बनाएँ। ShouldQueue और handle() लागू करें। ::dispatch() से कार्य भेजें। onQueue() से कतारों को लक्षित करें। Queue::fake() से परीक्षण करें।

त्वरित जाँच

कौन-सा इंटरफ़ेस किसी कार्य वर्ग को कतार में रखने योग्य बनाता है?

शुरुआत निःशुल्क

एआई शिक्षक के साथ PHP सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
49
पाठ
195

अक्सर पूछे जाने वाले प्रश्न

क्या “Jobs बनाना और डिस्पैच करना” पाठ निःशुल्क है?

हाँ—“Jobs बनाना और डिस्पैच करना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और PHP Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। PHP Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Jobs बनाना और डिस्पैच करना” में मैं क्या सीखूँगा?

Artisan से job क्लास जनरेट करें और उसे नियंत्रकों से डिस्पैच करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ PHP Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या PHP Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर PHP Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“Jobs बनाना और डिस्पैच करना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस PHP Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर PHP Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Queue की अवधारणाएँ और ड्राइवर
  2. Jobs बनाना और डिस्पैच करना
  3. Job के पुनःप्रयास, विलंब और चेनिंग
  4. Laravel Horizon से Queues की निगरानी
← PHP Academy पर वापस जाएँ