Есть ли способ, которым Сторона может быть уведомлена о завершении потока? - PullRequest
0 голосов
/ 28 мая 2020

Если взять в качестве примера поток, описанный в документации Corda (см. здесь ), как Боб может получить уведомление о том, что транзакция, которую он только что подписал, завершена, без опроса своего собственного хранилища? Существует ли специальный обратный вызов c?

Мне нужно, чтобы CorDapp, работающий на узле Bob, сообщал другой системе статус транзакции в режиме реального времени

Большое спасибо

Ответы [ 2 ]

1 голос
/ 28 мая 2020

Это можно сделать двумя способами:

1. Подпишитесь на обновление с помощью клиента

cordaRPCOPS.vaultTrack(<YourState>.class).getUpdates().subscribe( update -> {
            update.getProduced().forEach(stateAndRef -> {
                // Action to be Performed on State Update
            });
        });

2. Подпишитесь на обновление с помощью CordaService:

getServiceHub().getVaultService().trackBy(<YourState>.class).getUpdates().subscribe( update -> {
    update.getProduced().forEach(stateAndRef -> {
        // Action to be Performed on State Update
    });
});
0 голосов
/ 28 мая 2020

В дополнение к ответу Ашуто sh,

Внутри веб-сервера SpringBoot, который идентифицирует API для запуска вашего потока, вы можете использовать proxy.startTrackedFlowDynamic() (где proxy - RP вашего узла C подключение); он возвращает FlowProgressHandle, который вы можете использовать для подписки на события потока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...