2017-08-07 2 views
0

Ist es möglich, einen Dienst als Argument für eine Methode in einem anderen Dienst in Thrift zu übergeben?Übergeben von Thrift-Dienst als Argument

service MyService { 
    void foo(1: MyOtherService), 
} 

service MyOtherService { 
    void bar(), 
} 
+0

Mögliches Duplikat von [Rückrufe in Thrift Asynchronous Functions?] (Https://stackoverflow.com/questions/2554999/callbacks-in-Trift-asynchronous-functions) – JensG

Antwort

0

Service ist nicht Thrift serializable (mit anderen Worten: kein Sinn Dienst über das Netzwerk zu übertragen - Ihre foo Funktion auf Remote-Rechner mit tragenen Argumenten ausgeführt werden).

Ich denke nicht.

Was ist ein echtes Ziel? Ich habe Intuition Sie wollen ein gutes OO-Muster. Ist diese Art der Parametrisierung?

+0

z. gRPC/protobuf bietet integriertes Streaming, das ein Anwendungsfall sein könnte. Es kann jedoch mit Thrift emuliert werden, wenn Sie die API in geeigneter Weise entwerfen – JensG

+0

Das Ziel war es, Dienste teilweise in verschiedenen Sprachen implementiert zu ermöglichen. Dienste würden von den Signaturen von Methoden abhängen, nicht aber von deren Implementierungen. Dies scheint jedoch in nativem Thrift nicht möglich zu sein. – ashwin153

+0

0. stimmen Signaturen! = Implementierungen. 1. Thfit Lösungen können vollständig in gemischten Sprachen, ABER .... 2. Jede Leitung hat zwei Enden. Ich verstehe Sie wollen zwei (Teil-) Dienste am gleichen Ende arbeiten in der Gemeinschaft für die andere Seite. FRAGE: verschiedene Sprachen aus einer Welt, z. Java /, NET? Das wird ziemlich einfach sein –

Verwandte Themen