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

1.0 KiB

任务

iTi-Flask 提供单进程任务注册表和运行器。

它用于轻量定时任务或手动触发任务。 它不是分布式任务平台。

范围

支持:

  • 任务注册。
  • 手动触发。
  • interval 调度。
  • 简单 cron-like 调度。
  • 单进程内防重复执行。
  • 内存中的运行状态。
  • 结构化日志。

不支持:

  • 分布式锁。
  • 多实例 exactly-once。
  • 默认 Celery 或 RQ。
  • 持久化队列存储。

多进程生产部署时,只在一个专用进程中启用 scheduler。

使用

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",
)

手动触发:

from iti.tasks import task_registry

run = task_registry.trigger("erp.sync.users")

调度格式

第一版支持的 schedule 格式:

interval:60
cron:*/10 * * * *

内置 cron 支持刻意保持很小。 复杂调度后续接专用 scheduler 集成。