dev-master
9999999-devSimple Event Scheduler
MIT
The Requires
- neos/flow ^4.0
- neos/event-sourcing dev-master
- php ~7.1.0
v0.1.0
0.1.0.0Simple Event Scheduler
MIT
The Requires
- neos/flow ^4.0
- neos/event-sourcing dev-master
- php ~7.1.0
Wallogit.com
2017 © Pedro Peláez
Simple Event Scheduler
Simple Event scheduler for the Neos.EventSourcing Flow package, (*1)
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), (*2)
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., (*3)
Simple Event Scheduler
MIT
Simple Event Scheduler
MIT