У меня есть задания, состояние которых сохраняется в базе данных, если выполняются некоторые требования, эти задания извлекаются из базы данных и запускаются снова. Эта система использует Rx Java с пружиной.
Чего я хотел бы достичь: когда такое задание запускается снова, я хочу иметь traceId с тем же значением, когда это задание было сохранено в db. Пример:
- Задание запускается с traceId A
- Задание сохраняется с traceId A и ожидает некоторых необходимых данных / событий
- Другой процесс запускается с traceId B
- Процесс с traceId B задание разблокировки с traceId A для повторной обработки
В том случае, когда я буду обрабатывать задание, оно будет с traceId B . Моя текущая наивная реализация заключалась в том, чтобы вставить его в MDC
, но он работает только в рамках Single.map
и не распространяется внутри Completables
или Singles
. Я предполагаю, что это может потребовать некоторого взлома, потому что я не смог найти подобного варианта использования в храброй документации и spring-сыщик. Более того, если будет проще, меня не волнует spanId, единственное, что мне важно, это traceId.