tkachikov / chronos
Settings commands for Laravel Scheduling
Requires
- php: ^8.2
- tkachikov/laravel-withtrashed: ^1.0
- tkachikov/memory: ^1.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.90
- infection/infection: ^0.31.9
- laravel/framework: ^12.10
- orchestra/testbench: ^10.2
- phpunit/phpunit: ^11.0
- vimeo/psalm: ^6.13
This package is auto-updated.
Last update: 2026-06-29 02:26:05 UTC
README
This package for setting commands in schedule.
Installation
Require this package with composer using the following command
composer require tkachikov/chronos
Run Chronos command for install:
php artisan chronos:install
Authorization
In defaults pages open for all users and also without auth middleware.
For open setting pages for authenticated users need uncommented 'auth' middleware in config chronos.php:
return [ 'domain' => env('CHRONOS_DOMAIN'), 'middlewares' => [ 'web', 'auth', // 'Tkachikov\Chronos\Http\Middleware\Authorize', ], ];
For authorization in production uncommented Chronos auth in config chronos.php and set statements in app/Providers/ChronosServiceProvider:
return [ 'domain' => env('CHRONOS_DOMAIN'), 'middlewares' => [ 'web', 'auth', 'Tkachikov\Chronos\Http\Middleware\Authorize', ], ];
// ... class ChronosServiceProvider extends ChronosApplicationServiceProvider { // ... protected function gate(): void { Gate::define('viewChronos', function ($user) { return $user->hasRole('admin'); }); } }
Usage
Visit route /chronos, example: localhost:8000/chronos
For testing
Run chronos:test command from queue and reload page:

Run chronos:test command in real time. Out messages pushing in custom terminal:

Run attributes
If you need off run command from Chronos dashboard (notRunInManual) or schedules (notRunInSchedule) set in ChronosCommand attribute:
// ... use Tkachikov\Chronos\Attributes\ChronosCommand; #[ChronosCommand( notRunInManual: false, notRunInSchedule: true, )] class TestCommand extends Command { // ... }
Logging and states
For logging command messages and set status added trait ChronosRunnerTrait:
// ... class TestCommand extends Command { use ChronosRunnerTrait; // ... }
Create schedules
Open your command and set params for it in Create schedule and save.

For off command click button edit, check to off Run and save:

Group name
In default base class name directory for group name.
You must be setting property group in ChronosCommand attribute. Example:
// ... use Tkachikov\Chronos\Attributes\ChronosCommand; #[ChronosCommand( group: 'MyGroup', )] class TestCommand extends Command { // ... }
Statistics
For calculate statistics run commands you must create schedule for chronos:update-metrics
License
This package is open-sourced software licensed under the MIT license.

