Listener یا لسنر تابع یا کلاسی است که به وقوع یک رویداد واکنش می‌دهد. در معماری رویدادمحور، سرویس ثبت سفارش رویداد OrderPlaced را منتشر می‌کند و لسنر اعلان مشتری یا به‌روزرسانی موجودی را انجام می‌دهد.

مثال لاراول

use Illuminate\Contracts\Queue\ShouldQueue;
class SendOrderEmail implements ShouldQueue {
    public function handle(OrderPlaced $event): void {
        Mail::to($event->order->email)->send(new OrderPlacedMail($event->order));
    }
}

مثال JavaScript

const events = new EventTarget();
events.addEventListener('order:placed', (event) => console.log('New order'));
events.dispatchEvent(new Event('order:placed'));

نکته فنی

صرف پیاده‌سازی ShouldQueue بدون تنظیم Queue Worker و اتصال صف، اجرای پس‌زمینه واقعی را تضمین نمی‌کند.

اصطلاحات مرتبط: رویداد، معماری رویدادمحور، صف، جاب، مسیج بروکر.