Dart有调度程序吗?

Cha*_*e M 7 scheduler dart

我从服务器端的角度来看dart.

是否有可以在特定时间或每小时X次执行隔离的调度程序?我正在思考Java世界中的Quartz.

Set*_*add 11

Dart有一些延迟和重复任务的选项,但我不知道Quartz to Dart的端口(还是...... :)

以下是基础知识:

  • Timer - 经过一段时间后简单地运行一个函数
  • Future - 更强大,可组合,功能,"在未来"返回值
  • Stream - 强大,可组合的事件流.可以是定期的.

如果您有重复任务,我建议使用Stream over Timer.Timer没有内置的错误处理,因此未捕获的异常可以降低整个程序(Dart没有全局错误处理程序).

以下是使用Stream生成定期结果的方法:

import 'dart:async';

main() {
  var stream = new Stream.periodic(const Duration(hours: 1), (count) {
    // do something every hour
    // return the result of that something
  });

  stream.listen((result) {
    // listen for the result of the hourly task
  });
}
Run Code Online (Sandbox Code Playgroud)

你特别询问隔离物.您可以在程序启动时生成隔离,并每小时向其发送一条消息.或者,您可以在程序启动时生成隔离,并且隔离本身可以运行自己的计时器或定期流.