Если у меня есть длительная деятельность, которая делает что-то вроде
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
}
и я хотел бы иметь возможность отменить это из рабочего процесса (без отмены всего рабочего процесса), как бы я тогда это сделал?
Я надеялся, что вы можете получить на канале контекста Done и затем создать отменяемый контекст в рабочем процессе, но это, очевидно, ничего не делает.