【发布时间】:2019-06-01 00:05:49
【问题描述】:
如果我有一个长期运行的活动,类似于
func Activity(ctx context.Context) error {
ticker := time.NewTicker(5 * time.Second)
for {
select {
case <-ctx.Done():
return ctx.Err()
case <-ticker.C:
if isServiceReady(ctx) {
break
}
}
}
return nil
}
并且我希望能够从工作流中取消它(而不取消整个工作流),我将如何做到这一点?
我曾希望您可以在上下文完成通道上接收,然后在工作流中创建一个可取消的上下文,但这显然没有任何作用。
【问题讨论】:
标签: cadence-workflow