PHPackages                             humolot/ci4-bus - 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. humolot/ci4-bus

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

humolot/ci4-bus
===============

A full-featured asynchronous Job Bus for CodeIgniter 4 (Queue Worker, Failed Jobs, Delays, Retries, PM2/Supervisor-ready).

v1.0.2(5mo ago)03MITPHPPHP &gt;=8.0

Since Nov 16Pushed 5mo agoCompare

[ Source](https://github.com/humolot/ci4-bus)[ Packagist](https://packagist.org/packages/humolot/ci4-bus)[ RSS](/packages/humolot-ci4-bus/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (4)Used By (0)

CodeIgniter 4 Job Bus
=====================

[](#codeigniter-4-job-bus)

A full-featured asynchronous Job Bus and Queue Worker system for CodeIgniter 4 — similar to Laravel Queues &amp; Horizon, but built specifically for CI4.

Now installable via Composer:

```
composer require humolot/ci4-bus

```

✨ Features
----------

[](#-features)

- 🚀 Dispatch async jobs using `Bus::dispatch()`
- ⏰ Delayed jobs (`Bus::later()`)
- 🔁 Automatic retry logic
- ❌ Failed job storage &amp; management
- 🧹 Commands to clear jobs and failed jobs
- 🔄 Retry individual or all failed jobs
- 🛠 `bus:make` to scaffold new Job classes
- 🧵 Custom worker: `bus:work`
- 🔧 Configurable (attempts, delay, sleep, restart cycle)
- 🖥️ Compatible with PM2, Supervisor, Systemd, NSSM (Windows)

📦 Installation
--------------

[](#-installation)

```
composer require humolot/ci4-bus

```

Run installer:

```
php spark bus:install

```

This will create:

```
app/Jobs/
app/Jobs/JobInterface.php
app/Jobs/BaseJob.php
app/Config/Bus.php
migrations for jobs & failed_jobs

```

Run migrations:

```
php spark migrate

```

⚙ Configuration (app/Config/Bus.php)
------------------------------------

[](#-configuration-appconfigbusphp)

```
class Bus extends BaseConfig
{
    public int $maxAttempts       = 3;
    public int $delaySeconds      = 5;
    public int $restartAfterJobs  = 500;
    public int $sleepSeconds      = 1;
}

```

🛠 Creating Jobs
---------------

[](#-creating-jobs)

Generate:

```
php spark bus:make SendEmailJob

```

Your job:

```
namespace App\Jobs;

class SendEmailJob extends BaseJob
{
    public function handle(array $data)
    {
        // Your logic here
    }
}

```

🚀 Using the Package (Correct Path via Composer)
-----------------------------------------------

[](#-using-the-package-correct-path-via-composer)

Import the Bus class from vendor:

```
use Humolot\Bus\Bus;

Bus::dispatch(\App\Jobs\SendEmailJob::class, ['id' => 10]);

```

### Dispatch immediately

[](#dispatch-immediately)

```
Bus::dispatch(\App\Jobs\SendEmailJob::class, [
    'email' => 'user@example.com'
]);

```

### Dispatch later

[](#dispatch-later)

```
Bus::later(60, \App\Jobs\SendEmailJob::class, [
    'email' => 'user@example.com'
]);

```

### Bulk dispatch

[](#bulk-dispatch)

```
Bus::bulk([
    ['class' => JobA::class, 'payload' => [...]],
    ['class' => JobB::class, 'payload' => [...], 'delay' => 10]
]);

```

🧵 Running the Worker
--------------------

[](#-running-the-worker)

```
php spark bus:work

```

🔥 Production Worker Setup
-------------------------

[](#-production-worker-setup)

### PM2

[](#pm2)

```
npm install pm2 -g
pm2 start php --name ci4_bus -- spark bus:work
pm2 save
pm2 startup

```

### Supervisor

[](#supervisor)

```
[program:ci4_bus]
command=/usr/bin/php /var/www/project/spark bus:work
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/ci4_bus.log

```

Reload:

```
supervisorctl reread
supervisorctl update

```

### Windows (NSSM)

[](#windows-nssm)

```
nssm install CI4BusWorker

```

❌ Failed Job Management
-----------------------

[](#-failed-job-management)

```
php spark bus:failed
php spark bus:failed:retry 12
php spark bus:retry-all
php spark bus:failed:clear

```

🧹 Clearing Jobs
---------------

[](#-clearing-jobs)

```
php spark bus:clear

```

📁 Folder Structure
------------------

[](#-folder-structure)

Because the package is now installed via Composer, the core lives in:

```
vendor/humolot/ci4-bus/src

```

Your application files remain in:

```
app/Jobs/
app/Config/Bus.php
app/Models/
app/Libraries/Bus.php (auto-published)

```

📜 License
---------

[](#-license)

MIT License.

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance70

Regular maintenance activity

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

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

Total

3

Last Release

177d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b661567ec658a6537ca4223e3245aa483ea3deca45bbd7ec7a0a10206df9f69f?d=identicon)[humolot](/maintainers/humolot)

---

Top Contributors

[![humolot](https://avatars.githubusercontent.com/u/18011989?v=4)](https://github.com/humolot "humolot (6 commits)")

---

Tags

asyncqueuejobsbushorizoncodeigniter4CI4background worker

### Embed Badge

![Health badge](/badges/humolot-ci4-bus/health.svg)

```
[![Health](https://phpackages.com/badges/humolot-ci4-bus/health.svg)](https://phpackages.com/packages/humolot-ci4-bus)
```

###  Alternatives

[dereuromark/cakephp-queue

The Queue plugin for CakePHP provides deferred task execution.

308850.3k14](/packages/dereuromark-cakephp-queue)[croustibat/filament-jobs-monitor

Background Jobs monitoring like Horizon for all drivers for FilamentPHP

254255.2k6](/packages/croustibat-filament-jobs-monitor)[clue/mq-react

Mini Queue, the lightweight in-memory message queue to concurrently do many (but not too many) things at once, built on top of ReactPHP

144691.7k4](/packages/clue-mq-react)[harris21/laravel-fuse

Circuit breaker for Laravel queue jobs. Protect your workers from cascading failures.

3786.5k](/packages/harris21-laravel-fuse)[enqueue/job-queue

Job Queue

34390.8k6](/packages/enqueue-job-queue)[renoki-co/horizon-exporter

Export Laravel Horizon metrics using this Prometheus exporter.

24152.7k](/packages/renoki-co-horizon-exporter)

PHPackages © 2026

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