orisai/nette-scheduler

Orisai Scheduler integration for Nette

This package is auto-updated.

Last update: 2024-04-16 22:08:46 UTC


README

Orisai Scheduler integration for Nette

📄 Check out our documentation.

💸 If you like Orisai, please make a donation. Thank you!

badge.svg 68747470733a2f2f62616467656e2e6e65742f636f766572616c6c732f632f6769746875622f6f72697361692f6e657474652d7363686564756c65722f76312e783f63616368653d333030 68747470733a2f2f62616467652e737472796b65722d6d757461746f722e696f2f6769746875622e636f6d2f6f72697361692f6e657474652d7363686564756c65722f76312e78 68747470733a2f2f62616467656e2e6e65742f7061636b61676973742f64742f6f72697361692f6e657474652d7363686564756c65723f63616368653d33363030 68747470733a2f2f62616467656e2e6e65742f7061636b61676973742f762f6f72697361692f6e657474652d7363686564756c65723f63616368653d33363030 68747470733a2f2f62616467656e2e6e65742f62616467652f6c6963656e73652f4d504c2d322e302f626c75653f63616368653d33363030

Register scheduler extension

extensions:
	orisai.scheduler: OriNette\Scheduler\DI\SchedulerExtension

Create service which will be run as a job

namespace Example;

class ExampleJobService
{

	public function run(): void
	{
		// Do something
	}

}
orisai.scheduler:
	jobs:
		-
			expression: * * * * *
			callback: [@example.job.service, 'run']

services:
	example.job.service: Example\ExampleJobService

Create script with scheduler setup (e.g. bin/scheduler.php)

use Orisai\Scheduler\Scheduler;

require __DIR__ . '/../vendor/autoload.php';

$configurator = Bootstrap::boot();
$container = $configurator->createContainer();
$scheduler = $container->getByType(Scheduler::class);

$scheduler->run();

Configure crontab to run your script each minute

* * * * * cd path/to/project && php bin/scheduler.php >> /dev/null 2>&1

Looking for more? Documentation is here.