欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

osloRPCClient消息接口簡介-創(chuàng)新互聯(lián)

class oslo_messaging.RPCClient(transporttargettimeout=Noneversion_cap=Noneserializer=Noneretry=None)

10年積累的網(wǎng)站設(shè)計、網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有鄂城免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

RPCClient是用于在遠程RPC服務(wù)器上調(diào)用方法的類。

transport:RPCClient通過transport向RPC server發(fā)送遠程調(diào)用并接收響應(yīng)。

支持兩種模式:

RPC calls:適用于期望有調(diào)用響應(yīng)的場景,遠程調(diào)用方法并等待響應(yīng)

RPC casts:適用于不需要RPC server返回響應(yīng)的場景


client:用于控制如何將RPC request傳遞到服務(wù)器。如果只有topic(exchange可選)被設(shè)置,RPC能夠被任何監(jiān)聽該topic(以及exchange)的servers服務(wù),多個servers按照round-robin的方式輪流被選中。在RPC Cast場景下,通過設(shè)置target的"fanout"屬性為True,可以把request廣播到所有監(jiān)聽的servers。


在構(gòu)造過程中創(chuàng)建默認target后,target屬性能夠在單獨的方法調(diào)用中使用prepare方法進行重配置。


方法調(diào)用由請求上下文字典,方法名稱和參數(shù)字典組成。

使用類封裝RPC Client的例子:

class TestClient(object):

    def __init__(self, transport):
        target = messaging.Target(topic='test', version='2.0')
        self._client = messaging.RPCClient(transport, target)

    def test(self, ctxt, arg):
        return self._client.call(ctxt, 'test', arg=arg)

使用prepare方式重新設(shè)置target屬性的例子:

def test(self, ctxt, arg):
    cctxt = self._client.prepare(version='2.5')
    return cctxt.call(ctxt, 'test', arg=arg)

另一個例子,設(shè)置超時時間:

def test(self, ctxt, arg):
    cctxt = self._client.prepare(timeout=10)
    return cctxt.call(ctxt, 'test', arg=arg)

如果連接無法完成,client會嘗試重新建立連接,默認將無限期繼續(xù)直到連接完成,可以設(shè)置retry次數(shù):

client = messaging.RPCClient(transport, target, retry=None)
client.call(ctxt, 'sync')
try:
    client.prepare(retry=0).cast(ctxt, 'ping')
except messaging.MessageDeliveryFailure:
    LOG.error("Failed to send ping message")

call(ctxtmethod**kwargs)

call方法,觸發(fā)調(diào)用并等待響應(yīng)。

只允許返回單個響應(yīng)值,不支持調(diào)用一個fanout模式的target。

在單一線程內(nèi)能夠保證多個call方法按順序處理。

方法參數(shù)必須是原始類型或者客戶端序列化器支持的類型(如果有)。 類似地,請求上下文必須是字典類型,除非客戶端的序列化程序支持序列化另一個類型。

can_send_version(version=<object object>)

檢查版本是否與版本上限兼容。

cast(ctxtmethod**kwargs)

觸發(fā)方法并且不會為返回值阻塞。

cast() RPC請求可以廣播到所有相匹配的servers。

cast會阻塞直到RPC request方法被messaging transport接受,但不確認方法是否被server調(diào)用。

cast保證方法不會在一個目的地被執(zhí)行兩次。

cast不保證執(zhí)行順序。

類似的,請求上下文必須是字典類型,除非客戶端的序列化程序支持序列化另一個類型。

prepare(exchange=<object object>, topic=<object object>, namespace=<object object>, version=<object object>, server=<object object>, fanout=<object object>, timeout=<object object>, version_cap=<object object>, retry=<object object>)

準備方法調(diào)用上下文。

使用此方法覆蓋單個方法調(diào)用的客戶端屬性。 例如:

def test(self, ctxt, arg):
    cctxt = self.prepare(version='2.5')
    return cctxt.call(ctxt, 'test', arg=arg)

exception oslo_messaging.RemoteError(exc_type=Nonevalue=Nonetraceback=None)

表示遠程端點方法引發(fā)了異常。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站欄目:osloRPCClient消息接口簡介-創(chuàng)新互聯(lián)
分享地址:http://chinadenli.net/article46/edpeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護品牌網(wǎng)站建設(shè)外貿(mào)建站網(wǎng)站制作虛擬主機網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)