问题描述
**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