У меня несколько звонков на разные сервисы. Я планирую запустить их параллельно. Вывод каждого метода имеет тип Monix Task. пусть есть 2 объекта двумя разными методами. method1
и method2
вызывают разные конечные точки REST.
output1 = obj1.method1(param1)
output2 = obj1.method2(param2)
output1
и output2
бывают разных типов.
Я пытаюсь использовать метод parZip2
в Monixвыполнить output1 и output2 параллельно. Когда я печатаю диапазон Kamon над первой строкой кода, у меня появляются значения Trace ID, Span ID и т. Д. Но когда параллельное выполнение происходит, идентификатор трассы как-то исчезает, и когда я проверяю Zipkin, я несм. трассировки.
Я попытался написать что-то вроде этого вокруг блока, где я обрабатываю два вызова параллельно.
val span = Kamon.currentSpan()
Kamon.withSpan(span) {
// do some logic for parallel processing
}
, но все же вызовы конечных точек имеют идентификатор трассировки пустой. Есть ли способ решить эту проблему?