SuperAPI AI 工具集

frappe-tweaks-async-tasks

通用与其它

查看项目

更新于 10-15 23:44

技能介绍

用途:为 Frappe Tweaks 的 Async Task(异步任务)系统提供使用指导,作为 frappe.enqueue 的可管理、可观测替代方案。

主要能力:与 frappe.enqueue 相比,Async Tasks 提供完整日志(状态、耗时、错误、内存)、按方法的 concurrency_limit 并发上限、按方法 priority 与按任务 at_front 的优先级排序、可从 UI 或代码取消、支持 Server Script、通过 dispatcher 去重,以及 max_retries + retry_delay 的自动重试。当任务来自多个来源需要限流、需要 UI 可见状态、调用白名单函数或 Server Script、需要程序化取消或失败自动重试时,应使用 Async Tasks;无需可见性的 fire-and-forget 或已由框架钩子处理重试/日志的场景可继续用 frappe.enqueue。

使用方式:从 tweaks.tweaks.doctype.async_task_log.async_task_log 导入 enqueue_async_task、enqueue_safe_async_task、bulk_enqueue_async_task、bulk_enqueue_safe_async_task,从 async_task_log_dispatch 导入 toggle_dispatcher、can_dispatch_now。enqueue_async_task 可传入方法点路径或可调用对象,或同时提供 document_type、document_name、document_action 三者(此时方法自动推导)。支持 queue、timeout、job_name、max_retries、retry_delay、at_front、call_whitelisted_function、batch_id、batch_order、arguments 等参数,返回值 .name 为 Async Task Log 名称。批量接口按插入顺序设置 batch_order,并返回 batch_id。可创建 Async Task Type 配置 priority、concurrency_limit、is_standard。状态流转为 Pending→Queued→Started→Finished/Failed/Canceled,失败可自动重置为 Pending。实时事件 async_task_status 会在状态变化时推送,前端可用 frappe.async_tasks.show_progress 与 show_batch_progress 显示进度,后台方法可用 notify_task_status 发送消息或结构化 progress(count、total、description)。

限制与未提供信息:资料未说明版本要求、部署方式、收费情况与具体性能指标;文档字段与 arguments 参数冲突时 arguments 优先;notify_task_status 在 worker 上下文之外为 no-op。