Serinus Banner

Discord

serinus_schedule provides a simple way to schedule tasks in your Serinus application. It uses the cron package for cron jobs and the Timer class for timeout and intervals. It is designed to be easy to use and integrate into your Serinus application.

Getting Started

Installation

To install Serinus Schedule you can use the following command:

dart pub add serinus_schedule

Usage

To use the ScheduleModule in your Serinus application, you need to add it in the module where you want to use it. This can be done using this code:

import 'package:serinus/serinus.dart';
import 'package:serinus_schedule/serinus_schedule.dart';

class AppModule extends Module {
  
  AppModule() : super(
    imports: [
      ScheduleModule()
    ],
    controllers: [
      AppController()
    ],
    providers: [
      Provider.deferred(
        (ScheduleRegistry registry) => AppService(registry),
        inject: [ScheduleRegistry], 
        type: AppService
      )
    ]
  )

}

The ScheduleModule exports the ScheduleRegistry which can now be used in the scope of the module.

class AppController extends Controller {
  
  AppController(): super('/') {
    on(Route.get('/'), (RequestContext context) {
      final registry = context.use<ScheduleRegistry>();
      registry.addCronJob(
        'hello',
        '*/5 * * * *',
        () async {
          print('Hello world');
        }
      )
    })
  }

}

Documentation

You can find the documentation here.

License

serinus_schedule and all the other Avesbox Packages are licensed under the MIT license. See the LICENSE file for more info.

Libraries

serinus_schedule