当前位置: 首页 > 知识库问答 >
问题:

Cadence go-client/client到达服务器以获取工作流导致恐慌

古弘
2023-03-14

Cadence首次用户:

场景我有一个cadence服务器在我的沙箱环境中运行。目的是获取工作流状态

我正在尝试使用这个cadence客户端

go.uber.org/cadence/client

在我的本地主机上与我的沙箱cadence服务器对话。

这是我的简单代码片段:

var cadClient client.Client

func main() {
wfID := "01ERMTDZHBYCH4GECHB3J692PC" << I got this from cadence-ui
ctx := context.Background()
wf := cadClientlient.GetWorkflow(ctx, wfID,"") <<< Panic hits here
log.Println("Workflow RunID: ",wf.GetID())
}

我肯定弄错了,因为客户端不知道如何访问节奏服务器。我参考了这个https://cadenceworkflow.io/docs/go-client/以找到正确的用法,但找不到任何参考(可能我错过了)。

任何关于如何解决/实施这个问题的帮助,都会有很大的帮助

共有1个答案

卢杰
2023-03-14

我不知道你有多恐慌。根据代码片段,很可能您尚未初始化客户端。

要初始化它,请按照下面的示例代码操作:https://github.com/uber-common/cadence-samples/blob/master/cmd/samples/common/sample_helper.go#L82

https://github.com/uber-common/cadence-samples/blob/aac75c7ca03ec0c184d0f668c8cd0ea13d3a7aa4/cmd/samples/common/factory.go#L113

    ch, err := tchannel.NewChannelTransport(
        tchannel.ServiceName(_cadenceClientName))
    if err != nil {
        b.Logger.Fatal("Failed to create transport channel", zap.Error(err))
    }

    b.Logger.Debug("Creating RPC dispatcher outbound",
        zap.String("ServiceName", _cadenceFrontendService),
        zap.String("HostPort", b.hostPort))

    b.dispatcher = yarpc.NewDispatcher(yarpc.Config{
        Name: _cadenceClientName,
        Outbounds: yarpc.Outbounds{
            _cadenceFrontendService: {Unary: ch.NewSingleOutbound(b.hostPort)},
        },
    })

    if b.dispatcher != nil {
        if err := b.dispatcher.Start(); err != nil {
            b.Logger.Fatal("Failed to create outbound transport channel: %v", zap.Error(err))
        

    client := workflowserviceclient.New(b.dispatcher.ClientConfig(_cadenceFrontendService))
 类似资料:
  • 用"cro sub"创建了一个web套接字服务器。 这名客户写道: 我在tcp转储中看到了来自服务器的响应代码101(交换协议),但我没有看到从客户端发送到服务器的消息。 那么,我做错了什么? 另一个问题,不应该“$connection.send”返回一个promise还是什么?如果发送时出错怎么办? 另一个问题是:服务器似乎只理解IPV6地址...如何让它理解IPV4地址? 就这样,现在。 使现

  • 问题内容: 调用反射值的.FieldByName方法时出现以下错误,确切的错误是:- 和代码是:- 我了解的并不多,但这就是我所能获得的所有信息。 这是Go Playground上代码的链接:http : //play.golang.org/p/E038cPOoGp 问题答案: 您已经是一个指向结构的指针。尝试打印出您的代码。 没有理由使用的地址,然后调用that ,它会取消对刚创建的指针的引用。

  • Apache版本和模块: 我使用grpc服务器作为后端服务器,由Apache代理。Apache用于终止TLS连接(在Apache中添加了http2支持)。以下是代理设置: ProxyPassMatch“^/v3”h2c://127.0.0.1:9080 现在,如果我发送一个有效的grpc客户端请求,它将被Apache成功代理,grpc客户端将收到grpc服务器响应。但是,当我试图发送一个在grpc

  • Transport Client 不设置集群名称 // on startup //此步骤添加IP,至少一个,如果设置了"client.transport.sniff"= true 一个就够了,因为添加了自动嗅探配置 TransportClient client = new PreBuiltTransportClient(Settings.EMPTY) .addTransportAd

  • 我看到一个SO线程说高CPU可能是因为JVM中的高内存。因此,我寻找监视JVM内存使用的工具,并遇到了VisualVM。不幸的是,我对它的理解不够好,无法使用它;我把它安装在QA服务器上,但我想不出一种方法让它找到在其他服务器上运行的测试计划。我在开始测试计划后立即启动它,但什么也没有显示出来。我确实添加了远程服务器,但我看不到任何选择。 我是否应该使用另一个负载生成实用程序或采取任何替代步骤?

  • 我在AWS弹性豆茎工人环境工作。我有一个简单的应用程序处理图像从S3桶下载&上传到另一个S3桶。 更新代码时,在/var/log/httpd/error_log中出现错误 s3_client=boto3.client('s3') SyntaxError:无效语法 引发类型(self._exception)、self._exception、self._traceback 请查找错误日志: 在使用bo