我从服务器端的角度来看飞镖。
是否有可以在特定时间或每小时执行 X 次的调度程序?我正在考虑 Java 世界中的 Quartz 线路。
Dart 有一些延迟和重复任务的选项,但我不知道 Quartz 到 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
});
}
您特别询问隔离物。您可以在程序启动时生成一个隔离,并每小时向它发送一条消息。或者,您可以在程序启动时生成隔离,隔离本身可以运行自己的计时器或周期性流。