You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何清空plone.app.async队列中的所有任务?

清空plone.app.async队列的方法

你已经定位到了队列对象,只差直接操作底层存储来清空。在pdb里执行以下代码即可:

# 若未获取队列,先执行这段(已获取可跳过)
from zope.component import queryUtility
from plone.app.async.interfaces import IAsyncService
service = queryUtility(IAsyncService)
queues = service.getQueues()
queue = queues.values()[0]

# 核心清空操作
# 清空主队列底层存储
queue._queue._data.clear()
# 清空放回队列底层存储
queue._putback_queue._data.clear()
# 清空被持有的任务(调度器已领取但未完成的)
queue._held.clear()
# 重置队列长度计数
queue._length.set(0)
# 重置总队列长度计数
queues._len.set(0)

说明:

  • CompositeQueue本身没有clear()方法,但它的_data属性是BTrees结构,支持clear()
  • _held是存储已被调度器认领的任务的OOBTree,同样可以用clear()清空
  • 直接清空底层数据不会自动更新长度统计,所以需要手动调用set(0)重置长度

执行完后可以用len(queue)验证是否已经清空。

内容的提问来源于stack exchange,提问作者GhitaB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 00:47:32