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

如何取消单元中已发布的ReadyToWork并替换为Pull类型RTW?

实现RTW(Push/Pull类型)的切换与撤回功能

要完成撤回已发布的Push类型RTW并替换为Pull类型的需求,核心是追踪已发布的Push RTW实例并执行撤回操作,以下是完善后的代码实现:

public class SomeCell: Cell
{
    // 追踪当前活跃的Push类型RTW实例
    private ReadyToWork _activePushRtw;

    [EntrySerialize]
    public void SendReadyToWorkPush()
    {
        // 若已有活跃的Push RTW,先撤回避免重复发布
        if (_activePushRtw != null)
        {
            Session.TakeBackSession(_activePushRtw.SessionId);
            _activePushRtw = null;
        }
        
        var rtw = Session.StartSession(ActivityClassification.Production, ReadyToWorkType.Push);
        PublishReadyToWork(rtw);
        // 保存实例以便后续可能的撤回操作
        _activePushRtw = rtw;
    }

    [EntrySerialize]
    public void SendReadyToWorkPull(long processId)
    {
        // 撤回已发布的Push类型RTW
        if (_activePushRtw != null)
        {
            Session.TakeBackSession(_activePushRtw.SessionId);
            _activePushRtw = null;
        }
        
        var rtw = Session.StartSession(ActivityClassification.Production, ReadyToWorkType.Pull, processId);
        PublishReadyToWork(rtw);
    }
}

关键实现说明

  • 追踪活跃RTW:通过类成员变量_activePushRtw记录当前已发布的Push类型RTW实例,确保后续能精准定位并撤回。
  • 前置撤回操作:无论是重新发布Push类型RTW,还是切换为Pull类型,都先检查是否存在未撤回的Push RTW,若存在则调用Session.TakeBackSession(需根据实际API调整方法名)执行撤回。
  • 状态重置:撤回后将_activePushRtw置空,避免重复执行撤回操作或错误追踪无效实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 02:16:13