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.
To install Serinus Schedule you can use the following command:
dart pub add serinus_schedule
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');
}
)
})
}
}
You can find the documentation here.
serinus_schedule and all the other Avesbox Packages are licensed under the MIT license. See the LICENSE file for more info.