Skip to content

Commit 2450c15

Browse files
committed
minor #19450 [Scheduler] Document events (alamirault)
This PR was merged into the 6.4 branch. Discussion ---------- [Scheduler] Document events Fix #19023 Fix #19033 Commits ------- 445075c [Scheduler] Document events
2 parents 5606be1 + 445075c commit 2450c15

File tree

1 file changed

+97
-0
lines changed

1 file changed

+97
-0
lines changed

scheduler.rst

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -501,6 +501,103 @@ before being further redispatched to its corresponding handler::
501501
}
502502
}
503503

504+
Scheduler Events
505+
----------------
506+
507+
PreRunEvent
508+
~~~~~~~~~~~
509+
510+
**Event Class**: :class:`Symfony\\Component\\Scheduler\\Event\\PreRunEvent`
511+
512+
``PreRunEvent`` allows to modify the :class:`Symfony\\Component\\Scheduler\\Schedule`
513+
or cancel message before it's consumed::
514+
515+
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
516+
use Symfony\Component\Scheduler\Event\PreRunEvent;
517+
518+
public function onMessage(PreRunEvent $event): void
519+
{
520+
$schedule = $event->getSchedule();
521+
$context = $event->getMessageContext();
522+
$message = $event->getMessage();
523+
524+
// do something with the schedule, context or message
525+
526+
// and/or cancel message
527+
$event->shouldCancel(true);
528+
}
529+
530+
Execute this command to find out which listeners are registered for this event
531+
and their priorities:
532+
533+
.. code-block:: terminal
534+
535+
$ php bin/console debug:event-dispatcher "Symfony\Component\Scheduler\Event\PreRunEvent"
536+
537+
PostRunEvent
538+
~~~~~~~~~~~~
539+
540+
**Event Class**: :class:`Symfony\\Component\\Scheduler\\Event\\PostRunEvent`
541+
542+
``PostRunEvent`` allows to modify the :class:`Symfony\\Component\\Scheduler\\Schedule`
543+
after message is consumed::
544+
545+
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
546+
use Symfony\Component\Scheduler\Event\PostRunEvent;
547+
548+
public function onMessage(PostRunEvent $event): void
549+
{
550+
$schedule = $event->getSchedule();
551+
$context = $event->getMessageContext();
552+
$message = $event->getMessage();
553+
554+
// do something with the schedule, context or message
555+
}
556+
557+
Execute this command to find out which listeners are registered for this event
558+
and their priorities:
559+
560+
.. code-block:: terminal
561+
562+
$ php bin/console debug:event-dispatcher "Symfony\Component\Scheduler\Event\PostRunEvent"
563+
564+
FailureEvent
565+
~~~~~~~~~~~~
566+
567+
**Event Class**: :class:`Symfony\\Component\\Scheduler\\Event\\FailureEvent`
568+
569+
``FailureEvent`` allows to modify the :class:`Symfony\\Component\\Scheduler\\Schedule`
570+
when message consumption throw an exception::
571+
572+
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
573+
use Symfony\Component\Scheduler\Event\FailureEvent;
574+
575+
public function onMessage(FailureEvent $event): void
576+
{
577+
$schedule = $event->getSchedule();
578+
$context = $event->getMessageContext();
579+
$message = $event->getMessage();
580+
581+
$error = $event->getError();
582+
583+
// do something with the schedule, context, message or error (logging, ...)
584+
585+
// and/or ignore failure event
586+
$event->shouldIgnore(true);
587+
}
588+
589+
Execute this command to find out which listeners are registered for this event
590+
and their priorities:
591+
592+
.. code-block:: terminal
593+
594+
$ php bin/console debug:event-dispatcher "Symfony\Component\Scheduler\Event\FailureEvent"
595+
596+
.. versionadded:: 6.4
597+
598+
Methods ``PreRunEvent``, ``PostRunEvent`` and ``FailureEvent`` were introduced
599+
in Symfony 6.4.
600+
504601
.. _`Memoizing`: https://en.wikipedia.org/wiki/Memoization
505602
.. _`cron command-line utility`: https://en.wikipedia.org/wiki/Cron
506603
.. _`crontab.guru website`: https://crontab.guru/

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy