PHPackages                             johnroyer/php-job-runner - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. johnroyer/php-job-runner

ActiveLibrary[Queues &amp; Workers](/categories/queues)

johnroyer/php-job-runner
========================

v1.1.2(8y ago)218MITPHPPHP &gt;=5.6

Since May 12Pushed 6y ago1 watchersCompare

[ Source](https://github.com/johnroyer/php-job-runner)[ Packagist](https://packagist.org/packages/johnroyer/php-job-runner)[ RSS](/packages/johnroyer-php-job-runner/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (4)Versions (10)Used By (0)

php-job-runner [![Build Status](https://camo.githubusercontent.com/f9898a8a2d998f5354e3d67059ee7abefc10efca891e38ae3ffbb7db192c8bd3/68747470733a2f2f7472617669732d63692e6f72672f6a6f686e726f7965722f7068702d6a6f622d72756e6e65722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/johnroyer/php-job-runner)
======================================================================================================================================================================================================================================================================================================================

[](#php-job-runner--)

A simple tool to help you execute routine jobs.

Example
-------

[](#example)

Create a job extends from `AbstractJob`:

```
class Cleanner extends \JobRunner\AbstractJob
{
    private $jobId = 'clean-outdated-backup';
    private $runTime = '0 3 * * *';

    public function update(\SplSubject $runner)
    {
        // clean outdated backups
    }
}
```

Register your job to runner:

```
$runner = new JobRunner\Runner();

$runner->attach(new Cleanner);
$runner->attach(new SomeOtherJob);
// ...

$runner->notify();  // runner will notify job which should run at current time
```

trigger runner by Linux crontab:

```
$ crontab -e
*/1 * * * *        /usr/bin/php  /path/to/bin/runner.php 2>&1 >/dev/null   // check jobs every minutes
```

TODO
====

[](#todo)

there is something to improvent:

- job logger / notifier
- support jobs run only once in a week
- job which will block / conflict other jobs
- better time / routine descreption

License
=======

[](#license)

- MIT license

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

7

Last Release

3272d ago

Major Versions

v0.9.1 → v1.0.02017-05-13

### Community

Maintainers

![](https://www.gravatar.com/avatar/134a7921f61f2b847c6f81e18d0cea923d1b877e2d86ff4f4322a99c4642c147?d=identicon)[johnroyer](/maintainers/johnroyer)

---

Top Contributors

[![johnroyer](https://avatars.githubusercontent.com/u/114491?v=4)](https://github.com/johnroyer "johnroyer (37 commits)")

---

Tags

cronphprunner

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/johnroyer-php-job-runner/health.svg)

```
[![Health](https://phpackages.com/badges/johnroyer-php-job-runner/health.svg)](https://phpackages.com/packages/johnroyer-php-job-runner)
```

###  Alternatives

[league/geotools

Geo-related tools PHP 7.3+ library

1.4k5.3M26](/packages/league-geotools)[amphp/parser

A generator parser to make streaming parsers simple.

14952.8M16](/packages/amphp-parser)[amphp/serialization

Serialization tools for IPC and data storage in PHP.

13451.1M18](/packages/amphp-serialization)[react/async

Async utilities and fibers for ReactPHP

2238.8M170](/packages/react-async)[amphp/pipeline

Asynchronous iterators and operators.

7432.7M34](/packages/amphp-pipeline)[react/promise-stream

The missing link between Promise-land and Stream-land for ReactPHP

11512.9M45](/packages/react-promise-stream)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
