You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iTi-Flask/docs/TASKS.md

65 lines
1.0 KiB
Markdown

# 任务
iTi-Flask 提供单进程任务注册表和运行器。
它用于轻量定时任务或手动触发任务。
它不是分布式任务平台。
## 范围
支持:
- 任务注册。
- 手动触发。
- interval 调度。
- 简单 cron-like 调度。
- 单进程内防重复执行。
- 内存中的运行状态。
- 结构化日志。
不支持:
- 分布式锁。
- 多实例 exactly-once。
- 默认 Celery 或 RQ。
- 持久化队列存储。
多进程生产部署时,只在一个专用进程中启用 scheduler。
## 使用
```python
from iti.tasks import task_registry
def sync_users():
return {"synced": 10}
task_registry.register(
name="erp.sync.users",
handler=sync_users,
schedule="interval:600",
)
```
手动触发:
```python
from iti.tasks import task_registry
run = task_registry.trigger("erp.sync.users")
```
## 调度格式
第一版支持的 schedule 格式:
```text
interval:60
cron:*/10 * * * *
```
内置 cron 支持刻意保持很小。
复杂调度后续接专用 scheduler 集成。