dart - Dart 有调度器吗?

标签 dart scheduler

我正在从服务器端的角度看 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/

    相关文章:

    list - 在Flutter/Dart中对具有相同属性(时间戳)的不同对象的列表进行排序

    Flutter:如何在 dart 的后台线程上运行函数

    python: 高级 python 调度程序 - cron 样式调度 - 传递函数参数

    Cron 作业每 x 周和特定日期运行一次

    flutter - 如何使用 GridView 从服务器获取 JSON 数据 --Flutter

    flutter - Flutter:无法将 'Future<List<UserVideo>>'类型的值分配给 'List<UserVideo>'类型的变量

    dart - 如何将背景图像添加到 flutter 应用程序?

    java - Java ScheduledExecutorService中使用的调度算法

    go - 如何使用 time.After() 而不是 time.Sleep() 来获得可中断的暂停

    timer - 实时 Linux : disable local timer interrupts