#cadence-workflow #uber-cadence
#cadence-рабочий процесс #uber-cadence
Вопрос:
Первый пользователь Cadence:
Сценарий У меня есть сервер cadence, работающий в моей среде изолированной среды. Цель состоит в том, чтобы получить статус рабочего процесса
Я пытаюсь использовать этот клиент cadence
go.uber.org/cadence/client
на моем локальном хосте для связи с моим сервером sandbox 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())
}
Я уверен, что ошибаюсь, потому что клиент не знает, как добраться до сервера cadence.
Я ссылался на это https://cadenceworkflow.io/docs/go-client / чтобы найти правильное использование, но не смог найти ни одной ссылки (возможно, я ее пропустил).
Любая помощь в том, как решить / реализовать это, будет очень полезна
Комментарии:
1. Можете ли вы распечатать трассировку стека паники? Интересно, правильно ли инициализирован cadClient.
Ответ №1:
Я не уверен, какая у вас паника. Судя по фрагменту кода, вероятно, вы не инициализировали клиент.
Чтобы инициализировать его, следуйте приведенному здесь образцу кода: https://github.com/uber-common/cadence-samples/blob/master/cmd/samples/common/sample_helper.go#L82
и
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))