Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/toflar/cronjob-supervisor

Some kind of supervisor helper when you only have cronjobs available
https://github.com/toflar/cronjob-supervisor

Last synced: 18 days ago
JSON representation

Some kind of supervisor helper when you only have cronjobs available

Awesome Lists containing this project

README

        

# Cronjob Supervisor

Need to have a number of workers on some server but have no access to any daemon like `supervisord` or the likes but
can configure a minutely cronjob? This library might come in handy for you then.

1. Installation

`composer require toflar/cronjob-supervisor`

2. Create your `runner.php`:

```php
withCommand(new BasicCommand('sleep 10', 2, function () {
return new Process(['sleep', '10']);
}))
->withCommand(new BasicCommand('sleep 29', 4, function () {
return new Process(['sleep', '29']);
}))
->supervise()
;
```

3. Configure the minutely cronjob

`* * * * * /path/to/your/php/binary/php runner.php`

That's it. The `Supervisor` will take care that even if your jobs are still running after a minute has passed, only
ever your maximum number of processes will be created.

For this to work, it uses multiple providers to check if processes are still running. Currently supported are:

* `posix_getpgid()`
* `ps -p `
* `tasklist /FI PID eq `

Which means you should be able to run it on most Linux and Windows combinations.