我正在从服务器端的角度看 dart。
是否有可以在特定时间或每小时 X 次执行隔离的调度程序?我在思考 Java 世界中的 Quartz 线路。
最佳答案
Dart 有一些延迟和重复任务的选项,但我不知道 Quartz 到 Dart 的端口(还...... :)
以下是基础知识:
Timer
- 只需在一些延迟后运行一个函数 Future
- 更健壮、可组合的函数,这些函数在“ 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
});
}
你特别询问隔离。您可以在程序启动时生成一个隔离,并每小时向其发送一条消息。或者,您可以在程序启动时生成隔离,隔离本身可以运行自己的计时器或定期流。
关于dart - Dart 有调度器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15848214/