PHPackages                             jc-it/yii2-job-queue-recurring - 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. jc-it/yii2-job-queue-recurring

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

jc-it/yii2-job-queue-recurring
==============================

Job Queue implementation - Recurring extension.

v4.0.0(4mo ago)182MITPHPPHP &gt;=8.3

Since Jun 3Pushed 4mo ago1 watchersCompare

[ Source](https://github.com/JC-IT/yii2-job-queue-recurring)[ Packagist](https://packagist.org/packages/jc-it/yii2-job-queue-recurring)[ RSS](/packages/jc-it-yii2-job-queue-recurring/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (4)Dependencies (2)Versions (5)Used By (0)

A recurring job extension for Job Queue for Yii2 based on Beanstalkd
====================================================================

[](#a-recurring-job-extension-for-job-queue-for-yii2-based-on-beanstalkd)

This extension provides a package that implements a way to store recurring jobs in the database for the yii2 job queue.

```
$ composer require jc-it/yii2-job-queue-recurring
```

or add

```
"jc-it/yii2-job-queue-recurring": ""

```

to the `require` section of your `composer.json` file.

Configuration
-------------

[](#configuration)

A possible implementation for recurring jobs has been added. This implementation stores the recurrence using the [Cron](https://crontab.guru/) notation and an Active Record model. It can easily be extended by creating own implementations for the AR model and Handler.

To use the recurring jobs with the implementation as provided by the package:

- Add `\JCIT\jobqueue\migrations` to your migration namespaces, or extend a new migration from the migration in the package and run them
- Register `\JCIT\jobqueue\jobs\RecurringJob::class` and `\JCIT\jobqueue\jobHandlers\RecurringHandler::class` in the `ContainerMapLocator` (as shown in the configuration)
- Add the recurring action to the controller:

```
public function actions(): array
{
    return [
        'daemon' => \JCIT\jobqueue\actions\DaemonAction::class,
        'recurring' => \JCIT\jobqueue\actions\RecurringJobAction::class,
    ];
}
```

- Run action, i.e. `./yii job-queue/recurring`
- Add a recurring job to the database i.e.

```
$jobFactory = \Yii::createObject(\JCIT\jobqueue\interfaces\JobFactoryInterface::class);
$job = new \JCIT\jobqueue\models\activeRecord\RecurringJob([
    'name' => 'Hello world job',
    'description' => 'Say hello to the world every minute',
    'job_data' => $jobFactory->saveToArray(new \JCIT\jobqueue\jobs\HelloJob('world')),
    'cron' => '* * * * *'
]);
$job->save();
```

Credits
-------

[](#credits)

- [Sam Mousa](https://github.com/SamMousa)
- [Joey Claessen](https://github.com/joester89)

###  Health Score

44

—

FairBetter than 92% of packages

Maintenance74

Regular maintenance activity

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity70

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 ~554 days

Total

4

Last Release

140d ago

Major Versions

v2.0.1 → v3.0.02025-04-10

v3.0.0 → v4.0.02025-12-23

PHP version history (2 changes)v2.0.0PHP &gt;=8.0

v3.0.0PHP &gt;=8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/88359ebe0456645a614e563dfbf0dd025b69ef57221050cb9eb31e3eef4dd0f9?d=identicon)[joester89](/maintainers/joester89)

---

Top Contributors

[![joester89](https://avatars.githubusercontent.com/u/9624366?v=4)](https://github.com/joester89 "joester89 (8 commits)")

### Embed Badge

![Health badge](/badges/jc-it-yii2-job-queue-recurring/health.svg)

```
[![Health](https://phpackages.com/badges/jc-it-yii2-job-queue-recurring/health.svg)](https://phpackages.com/packages/jc-it-yii2-job-queue-recurring)
```

###  Alternatives

[hellogerard/jobby

Manage all your cron jobs without modifying crontab. Handles locking, logging, error emails, and more.

1.1k1.6M14](/packages/hellogerard-jobby)[contributte/scheduler

PHP job scheduler (cron) with locking

31835.3k1](/packages/contributte-scheduler)[okvpn/cron-bundle

Docker friendly Symfony cron bundle for handle scheduled tasks consistently, parallel or across a cluster, like Symfony Messenger

19498.7k1](/packages/okvpn-cron-bundle)[orisai/scheduler

Cron job scheduler - with locks, parallelism and more

4037.1k4](/packages/orisai-scheduler)[neighborhoods/kojo

Neighborhoods Kōjō is a distributed task manager.

1520.6k2](/packages/neighborhoods-kojo)[panlatent/schedule

Schedule plugin for CraftCMS

1034.1k](/packages/panlatent-schedule)

PHPackages © 2026

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