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

.NET 8孤立工作者模式下如何修改Durable Functions运行时状态查询代码

.NET 8孤立工作者模式下获取Durable Functions运行时状态的修改方案

核心变化说明

在.NET 8孤立工作者模式中,Durable Functions的实例查询API已调整:原基于IDurableOrchestrationClient的ListInstancesAsync方法被替换为DurableTaskClient的GetInstancesAsync,查询条件类也从OrchestrationStatusQueryCondition改为InstanceQuery。

修改后的代码示例

首先通过构造函数注入DurableTaskClient,再执行实例查询:

using DurableTask.Core;
using DurableTask.Client;

public class YourFunctionClass
{
    private readonly DurableTaskClient _durableTaskClient;

    // 构造函数注入DurableTaskClient
    public YourFunctionClass(DurableTaskClient durableTaskClient)
    {
        _durableTaskClient = durableTaskClient;
    }

    public async Task<List<OrchestrationInstance>> GetRunningOrchestrationsAsync(CancellationToken cancellationToken = default)
    {
        // 指定要筛选的运行时状态
        var targetStatuses = new List<OrchestrationRuntimeStatus>
        {
            OrchestrationRuntimeStatus.Running
        };

        // 构建查询条件
        var instanceQuery = new InstanceQuery
        {
            RuntimeStatus = targetStatuses
        };

        // 执行查询并返回实例列表
        var queryResult = await _durableTaskClient.GetInstancesAsync(instanceQuery, cancellationToken);
        return queryResult.Items.ToList();
    }
}

关键修改点

  • 依赖替换:用DurableTaskClient替代原代码中的starter(即IDurableOrchestrationClient),通过依赖注入获取实例
  • 查询条件:用InstanceQuery类替换OrchestrationStatusQueryCondition来定义筛选规则
  • 查询方法:调用GetInstancesAsync替代ListInstancesAsync,返回结果包含分页信息,实例列表需从Items属性获取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 15:02:06