如何在ClearML请求层面按启动时间范围过滤任务?
解决ClearML任务启动时间范围过滤问题
你遇到的started参数报错是因为GetAllRequest不支持这个字段,ClearML的任务查询需要通过filter参数传入MongoDB风格的查询条件,实现服务器端直接过滤,避免拉取全量数据。
正确代码示例
from allegroai.backend_api.services.v2_13.tasks import GetAllRequest from allegroai.backend_api.session import Session # 确保已初始化Session(可通过clearml-init完成配置) Session() # 构建MongoDB风格的时间范围过滤条件 task_filter = { "start_time": { "$gte": "2024-04-30T21:00:00", "$lte": "2024-05-02T21:00:00" } } # 发起带过滤条件的请求 request = GetAllRequest(filter=task_filter) response = request.send() # 处理返回结果 if response.ok(): tasks = response.response.tasks print(f"找到符合条件的任务数:{len(tasks)}")
关键说明
start_time是ClearML任务对象存储启动时间的标准字段,而非你之前用的started- 通过
$gte(大于等于)和$lte(小于等于)定义时间范围,实现精准的区间过滤 - 该方式直接在ClearML服务器端完成数据筛选,仅返回符合条件的任务,大幅降低数据传输量和处理耗时,适配任务量庞大的场景
内容的提问来源于stack exchange,提问作者Tali
相关产品推荐
相关产品推荐

