#json #job #task #events #inotify #dispatch #sorting

json-job-dispatch

根据 JSON 文件描述的任务进行调度并按状态排序

11 个稳定版本

3.0.2 2023 年 5 月 30 日
3.0.1 2022 年 4 月 10 日
3.0.0 2021 年 11 月 22 日
2.0.1 2019 年 11 月 19 日
1.0.1 2017 年 1 月 18 日

#302文件系统

39 每月下载量

MIT/Apache

78KB
2K SLoC

JSON Job Dispatch

一个库,使用 inotify 监视目录中的 .json 任务文件,并将它们调度到已注册的处理程序。任务被存档到 accept/reject/ 目录,以便进行审计。此外,还会创建一个带有任务处理日期戳的配套文件,对于拒绝的任务,还会创建一个包含拒绝原因的文件。

设计目标是允许处理任务的守护进程崩溃,并通过使用文件系统作为需要处理的任务的简单对象存储和已完成任务的存档来提高对崩溃的容错能力。使用原子重命名来移动文件,因此输入目录必须位于与存档目录相同的文件系统上。


lib.rs:

一个小型库,用于将任务文件调度到相关处理程序。

此库实现了 Director 的核心逻辑,该逻辑将 JSON 文件中描述的任务调度到相关的 Handler,然后根据任务是否被接受或拒绝进行存档。

任务文件

任务文件是以 .json 扩展名结尾的 JSON 格式文件。需要两个键

  • kind: 此字符串值用于确定将使用哪个处理程序来处理任务。
  • data: 此值传递给处理程序。

还可以使用其他键(例如,一个 timestamp 来指示任务创建的时间)。

任务文件被导演视为只读。

依赖关系

~7–20MB
~269K SLoC