Skip to content

tkachikov/chronos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

Packagist Version PHP from Packagist Laravel 11.x Laravel 10.x Laravel 9.x License: MIT

GitHub stars GitHub issues GitHub last commit

This package for setting commands in schedule.

Upcoming Support

We are excited to announce that support for Laravel 11 is coming soon!

Stay tuned for updates and make sure to watch this repository for the latest information.

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

Added Chronos scheduler in app/Console/Kernel.php:

// ...
use Tkachikov\Chronos\Services\ScheduleService;

// ...
class Kernel extends ConsoleKernel
{
    // ...
    protected function schedule(Schedule $schedule): void
    {
        app(ScheduleService::class)->schedule($schedule);
    }
    // ...
}

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

Open chronos:test command: Open test

Run chronos:test command: Run test

Run attributes

If you need off run command from Chronos dashboard (notRunInManual) or schedules (notRunInSchedule) set attributes:
For example all off:

// ...
#[notRunInManual]
#[notRunInSchedule]
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. Create schedule

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

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published