Thrift има ли асинхронни дефиниции на метод от страна на сървъра за Java?

Мога да свържа HsHaServer и Async клиент в Java и всичко да работи гладко. Проблемът е, че изглежда няма асинхронен интерфейс за наистина асинхронни услуги. Интерфейсът на услугата е нещо подобно

public TSomeReposonse doStuff( TSomeParams params);

което изисква да блокирам вътре в doStuff, докато не съм готов да върна TSomeResponse

Има Async.Iface

public void doStuff( TSomeParams params, AsyncMethodCallback[AsyncClient.doStuff_call]);

но изглежда, че това е само за клиентската страна. Изглежда, че няма начин да се предаде стойност в обратното извикване. Прав ли съм в това? Ако искам истинска асинхронност от страна на сървъра, трябва ли да внедря собствен клиент/сървър с нещо като netty?

Благодаря, Андрю


person Andrew    schedule 06.11.2012    source източник
comment
акане. Това е, което си мислех. Благодаря.   -  person Andrew    schedule 08.11.2012
comment
@Andrew Имам същия въпрос днес. Това все още ли е вярно?   -  person Peter    schedule 12.04.2016


Отговори (1)


Този въпрос е доста стар (вероятно има значка за това), но в случай, че е от значение за някого, отговорът е да. Нарича се асинхронна обработка - вижте тук: https://issues.apache.org/jira/browse/THRIFT-1972

Той използва същия интерфейс, който би използвал асинхронен клиент.

Въпреки това има почти абсурдна липса на документация за това.

person Barak    schedule 26.06.2018
comment
Все още работи, доколкото мога да преценя: postimg.cc/fS7rNDJX - person Barak; 09.09.2020