惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Hacker News: Front Page
博客园 - 【当耐特】
量子位
博客园 - 聂微东
H
Hackread – Cybersecurity News, Data Breaches, AI and More
The Register - Security
The Register - Security
Last Week in AI
Last Week in AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tailwind CSS Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
Jina AI
Jina AI
The Cloudflare Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
AWS News Blog
AWS News Blog
L
LINUX DO - 最新话题
酷 壳 – CoolShell
酷 壳 – CoolShell
The GitHub Blog
The GitHub Blog
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Security @ Cisco Blogs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Schneier on Security
Stack Overflow Blog
Stack Overflow Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Engineering at Meta
Engineering at Meta
W
WeLiveSecurity
博客园 - 三生石上(FineUI控件)
Security Archives - TechRepublic
Security Archives - TechRepublic
Hugging Face - Blog
Hugging Face - Blog
T
Troy Hunt's Blog
C
CERT Recently Published Vulnerability Notes
N
News and Events Feed by Topic
S
SegmentFault 最新的问题
美团技术团队
C
CXSECURITY Database RSS Feed - CXSecurity.com
人人都是产品经理
人人都是产品经理
SecWiki News
SecWiki News
N
News and Events Feed by Topic
C
Check Point Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
宝玉的分享
宝玉的分享
Schneier on Security
Schneier on Security
阮一峰的网络日志
阮一峰的网络日志
Cisco Talos Blog
Cisco Talos Blog
T
Threat Research - Cisco Blogs
J
Java Code Geeks

洛屿的小站

一种简单的卡尔曼滤波器设计 Cadence - 应律而动,落指成音 Zephyr - 聆风之息,为你而奏 不改一行插件代码,实现消息优先级与阻断 在 butterfly 主题中添加首页点集动画(基于p2line项目) 你好,2026 stm32f4xx-ads1256驱动 stm32f4xx-ad9854并行驱动 主动式网站状态监测实现及其应用 右键菜单加入用Trae打开文件和文件夹 三角洲行动ID映射表 洛玖SDK说明 为网页文章开头添加原文连接 Hexo-Butterfly主题在主页添加GitHub贡献日历 Proteus中555定时器仿真问题 装饰器 洛玖开发日记 STS3032舵机获取力矩输出 kotlin网页前后端那些事 mspm0g3507-ad9850 奇怪的bug Paddle模型转PaddleLite 人工智能考核 构建一个yolov3网络 yolo和paddle模型常见输出参数 PaddleDetection 随便写的一些东西 实验室C语言第一次考核题目讲解及相关代码解读 C语言神经网络房价预测系统 C、C++数组,指针,指针数组,数组指针的区别 C、C++的大括号是必须的部分吗? C、C++预处理详解 C、C++其他关键字详解 C、C++存储类型关键字详解 C、C++控制语句关键字详解 C、C++数据类型关键字详解 C、C++关键字 C++药品管理系统 Bi-LSTM(Attention)的PyTorch实现 C语言实现波士顿房价预测 easy库的使用 edgeboardFZ3A相关问题 Predict.py的编写 Paddle环境搭建 百度Paddle模型训练 GMD09601-0.96OLED显示屏 【LeetCode 1617】统计子树中城市之间最大距离 C语言学习相关 STM32阵列按键 CH32(F10X F20X) 最短路 拓扑排序
洛玖定时任务系统
洛屿 · 2026-05-01 · via 洛屿的小站

概述

洛玖采用基于 FFI 消息总线的定时任务系统。插件通过向 luo9_task topic 发布请求来注册定时任务,luo9_bot内含轻量级 Cron 调度器,到期后通过同一 topic 向插件推送事件。

架构

1
2
3
4
5
6
7
8
插件 ──publish──> luo9_task (请求: schedule/cancel)

┌───────┴───────┐
│ Cron 调度器 │ ← luo9_bot内 tokio task
│ 每秒检查匹配 │
└───────┬───────┘

插件 <──pop──── luo9_task (事件: tick)

Task 协议

注册定时任务

插件发布 JSON 到 luo9_task topic:

1
2
3
4
5
6
{
"action": "schedule",
"task_name": "my_task",
"cron": "0 */5 * * * *",
"payload": "任意数据"
}

取消定时任务

1
2
3
4
{
"action": "cancel",
"task_name": "my_task"
}

接收定时事件

调度器触发后,插件通过订阅 luo9_task 接收:

1
2
3
4
5
{
"event": "tick",
"task_name": "my_task",
"payload": "任意数据"
}

区分方式:请求有 action 字段,事件有 event 字段。

Cron 表达式

6 字段格式:秒 分 时 日 月 周

字段 范围
0-59
0-59
0-23
1-31
1-12 (支持 JAN-DEC)
0-7 (0和7=周日, 支持 SUN-SAT)

特殊字符

字符 说明 示例
* 所有值 * * * * * *
? 不指定(日/周互斥) 0 0 12 15 * ?
- 范围 0 0 9-17 * * *
, 列表 0 0 0 1,15 * *
/ 步长 0 */5 * * * *
L 最后(日: 月末; 周: 最后周X) 0 0 0 L * * / 0 0 0 * * 5L
W 最近工作日(不跨月) 0 0 0 15W * *
# 第N个星期X 0 0 0 * * 2#3(第3个周一)

常用示例

Cron 表达式 含义
0 */5 * * * * 每5分钟
0 0 9 * * * 每天 9:00
0 0 0 * * 1 每周一 0:00
0 0 12 15 * ? 每月15号 12:00
0 0 0 L * * 每月最后一天 0:00
0 0 0 * * 5L 每月最后一个周五 0:00
0 0 0 * * 2#3 每月第3个周一 0:00

插件端使用(Rust)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use luo9_sdk::bus::Bus;

fn register_task() {
let request = serde_json::json!({
"action": "schedule",
"task_name": "epic_remind",
"cron": "0 0 9 * * *",
"payload": "epic_daily_check"
});
Bus::topic("luo9_task").publish(&request.to_string()).ok();
}

fn cancel_task() {
let request = serde_json::json!({
"action": "cancel",
"task_name": "epic_remind"
});
Bus::topic("luo9_task").publish(&request.to_string()).ok();
}

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 洛屿的小站

打赏

  • wechat

    wechat

  • alipay

    alipay