Scheduling
Scheduling PHP
Ecotone
comes with support for running period tasks
or cron jobs.
class NotificationService
{
#[Scheduled(endpointId: "notificationSender")]
#[Poller(fixedRateInMilliseconds: 1000)]
public function sendNotifications(): void
{
echo "Sending notifications...\n";
}
}
endpointId
- it's name which identifies process to run
poller
- Configuration how to execute this method read more in next section.
Above configuration tells Ecotone
to execute this method every second.Symfony
Laravel
Lite
console ecotone:list
+--------------------+
| Endpoint Names |
+--------------------+
| notificationSender |
+--------------------+
artisan ecotone:list
+--------------------+
| Endpoint Names |
+--------------------+
| notificationSender |
+--------------------+
$consumers = $messagingSystem->list()
After setting up Scheduled endpoint we can run the endpoint:
Symfony
Laravel
Lite
console ecotone:run notificationSender -vvv
artisan ecotone:run notificationSender -vvv
$messagingSystem->run("notificationSender");
You can run
Scheduled
for given Handler.
Right now method return Message which is send to given routing.class CurrencyExchanger
{
#[Scheduled(requestChannelName: "exchange", endpointId: "currencyExchanger")]
#[Poller(fixedRateInMilliseconds=1000)]
public function callExchange() : array
{
return ["currency" => "EUR", "ratio" => 1.23];
}
}
#[CommandHandler("exchange")]
public function exchange(ExchangeCommand $command) : void;
When the Message will arrive on the Command Handler it will be automatically converted to
ExchangeCommand.
If you want to understand how the conversion works, you may read about it in Conversion section.Last modified 9mo ago