Download the PHP package sefirosweb/laravel-cronjobs without Composer
On this page you can find all versions of the php package sefirosweb/laravel-cronjobs. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download sefirosweb/laravel-cronjobs
More information about sefirosweb/laravel-cronjobs
Files in sefirosweb/laravel-cronjobs
Package laravel-cronjobs
Short Description Package for made and modify easly the cronjob system
License MIT
Informations about the package laravel-cronjobs
Laravel Cronjobs
Database-driven cronjob manager for Laravel. Store jobs in MySQL, schedule each one with its own cron expression, retry/timeout policy, and dispatch them to the queue. Ships with a React admin UI.
Requirements
- PHP
^8.3 - Laravel
^13.0 - A running
schedule:workprocess (so pending jobs get dispatched every minute). - A queue worker (
queue:work/queue:listen) if you want jobs to actually run off the main process.
Installation
The service provider auto-registers via Laravel's package discovery.
Run migrations:
This creates the cronjobs table with fields for name, description, target controller/method, cron expression, backoff, max tries, timeout, retries, and soft-delete.
Configuration
Publish the config:
Default config/laravel-cronjobs.php:
⚠️ Security: the admin UI can dispatch any controller/method in your app. Always protect it with auth and an ACL check. If you use
sefirosweb/laravel-access-list:
Publish the React admin UI assets:
Admin UI
Since v13.0.1 the bundled admin UI is a self-contained React 19 + TypeScript + Vite SPA. There are no react-bootstrap / react-crud / toastr dependencies anymore — the bundle is ~115 kB gzipped including self-hosted Geist fonts. Tabs are hash-routed (#cronjobs, #queue).
| Cronjobs listing | |
| Edit cron expression modal | |
| Run-now confirmation |
The cron-expression modal calls POST /preview_job debounced on every keystroke and shows the next 40 firings of the expression, so the admin can validate the schedule before saving. A one-click cheat sheet of common patterns (* * * * *, 0 * * * *, 0 0 * * *, 0 0 * * 0, 0 0 1 * *) is right under the input.
The Disable / Enable toggle is optimistic: the row's deleted_at flips in cache immediately so the opacity, the "Desactivado" badge and the action buttons update without flicker, with rollback on error.
The Activos / Todos / Desactivados segmented filter at the top of the listing maps directly to ?status= on GET /cronjobs/crud, so the trashed rows are reachable without a SQL detour.
Usage
1. Keep the scheduler running
The service provider registers a cronjobs:pending command on Laravel's scheduler to run every minute. You need Laravel's own scheduler process alive:
…and a queue worker (recommended):
2. Add and manage cronjobs from the UI
Browse to /cronjobs (or whatever prefix you configured). For each job you define:
| Field | Meaning |
|---|---|
| Name | Free text identifier (unique). |
| Description | Free text. |
| Controller | Fully qualified class, e.g. App\Http\Controllers\Admin\ReportsController. |
| Function | Public method with no required parameters. |
| Cron expression | Standard cron syntax, e.g. 0 3 * * *. The UI shows a preview of the next 40 runs. |
| Backoff | Seconds to wait before retrying after failure. |
| Max tries | Number of retry attempts before marking the job as failed. |
| Timeout | Seconds before the worker kills the job. |
3. Listen for events
Each dispatch emits an event that your app can react to:
4. Artisan commands
Testing
The suite uses Orchestra Testbench + SQLite :memory: and covers controller CRUD, the DispatchCronjob job, the Cronjob model (soft-deletes, casts), and the Carbon 3 diffInSeconds regression fix.
When working from the laravel-test harness with Sail:
Versioning
Major versions are aligned with Laravel majors (12.x, 11.x, 9.x …). See the root CLAUDE.md of the test harness for the full policy.
License
MIT.
All versions of laravel-cronjobs with dependencies
laravel/framework Version ^13.0
dragonmantank/cron-expression Version ^3.3.2