wwwision/event-scheduler
composer require wwwision/event-scheduler
Simple Event Scheduler
v0.1.0
- Requires
- neos/flow: ^4.0
- neos/event-sourcing: dev-master
- php: ~7.1.0
Wwwision.EventScheduler
Simple Event scheduler for the Neos.EventSourcing Flow package
Usage
class SomeClass implements EventListenerInterface
{
const TASK_TYPE = 'plans';
/**
* @Flow\Inject
* @var EventScheduler
*/
protected $scheduler;
public function whenSomeThingWasPlanned(SomeThingWasPlanned $event): void
{
$taskPayload = ['nameOfTheThing' => $event->getTitle()];
$this->scheduler->scheduleTask($event->getCorrelationId(), self::TASK_TYPE, $event->getPlannedDate(), $taskPayload);
}
public function whenSomeThingWasCancelled(SomeThingWasCancelled $event): void
{
$this->scheduler->cancelTask($event->getCorrelationId(), self::TASK_TYPE);
}
public function whenSchedulerWasTriggered(SchedulerWasTriggered $event): void
{
if (!$event->matchesType(self::TASK_TYPE)) {
return;
}
$payload = $event->getPayload();
// TODO Do something with the $paload
}
}
To make this work the ./flow wwwision.eventscheduler:scheduler:run
command needs to be executed regularly (e.g. via cron)
Note: In this example SomeThingWasPlanned
and SomeThingWasCancelled
are domain events.
SchedulerWasTriggered
is an "integration event" that triggered by the EventScheduler
as soon as the given timestamp is reached.
The same vendor provides 22 package(s).