cron插件和Flutter中的Timer.periodic之间的区别

问题描述

**every 5 seconds something will be called**

Timer.periodic(Duration(seconds: 5),(timer) {
  //something();

});

**every 1 minute something() will be called.**
  var cron = new Cron();
cron.schedule(new Schedule.parse('*/1 * * * *'),() async {
 // something();

});

,但是如果应用程序不再在内存中,则两者都不会执行作业。

解决方法

Cron优于Timer的优势在于,使用Cron语法,您可以指定复杂的时间间隔,而不仅可以指定恒定的持续时间间隔。

例如,很难每天在特定时间(例如6:05 pm)使用Timer执行函数,因为它取决于开始时间,并且它会增加持续时间,这与Cron一样,您可以放一个:>

var cron = new Cron();
cron.schedule(new Schedule.parse('5 6 * * *'),() async {
// something();
});

总而言之,如果您的目标只是在固定间隔内重复执行任务,请使用计时器,如果您的目标较复杂,例如在工作日的下午2点每2个月重复一次,则可能需要Cron。

var cron = new Cron();
cron.schedule(new Schedule.parse('0 6 * */2 MON-FRI'),() async {
// something();
});

以下链接可进一步了解Cron语法:corn syntax