新聞中心
用于處理 ?Future對象的實(shí)用程序。

白云網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司于2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
Tornado 之前提供了自己的 ?Future類,但現(xiàn)在使用 ?asyncio.Future?。 此模塊包含用于與 Tornado 的舊 ?Future實(shí)現(xiàn)向后兼容的方式使用 ?asyncio.Future 的實(shí)用程序函數(shù)。
雖然這個模塊是 Tornado 內(nèi)部實(shí)現(xiàn)的重要組成部分,但應(yīng)用程序很少需要直接與其交互。
class tornado.concurrent.Future
?tornado.concurrent.Future? 是 ?asyncio.Future? 的別名。
在 Tornado 中,應(yīng)用程序與 ?Future?對象交互的主要方式是在協(xié)程中?awaiting?或?yielding?它們,而不是調(diào)用 ?Future對象本身的方法。
在 5.0 版更改:Tornado 的 ?Future實(shí)現(xiàn)已被 ?asyncio的版本取代(如果可用)。
- ?
Future?對象只能在存在當(dāng)前 ?IOLoop時創(chuàng)建 - 使用 ?
Future.add_done_callback? 安排的回調(diào)時間已更改。 - 現(xiàn)在部分支持取消(僅在 python 3 上)
- ?
exc_info和 ?set_exc_info方法在 Python 3 上不再可用。
tornado.concurrent.run_on_executor(*args, **kwargs) → Callable
裝飾器在執(zhí)行器上異步運(yùn)行同步方法。
返回一個?future?。
要使用的?executor?由?self?的?executor?屬性決定。 要使用不同的屬性名稱,請將關(guān)鍵字參數(shù)傳遞給裝飾器:
@run_on_executor(executor='_thread_pool')
def foo(self):
pass此裝飾器不應(yīng)與名稱相似的 ?IOLoop.run_in_executor? 混淆。 一般來說,建議在調(diào)用阻塞方法時使用 ?run_in_executor而不是在定義方法時使用此裝飾器。 如果需要與舊版本的 Tornado 兼容,請考慮在調(diào)用站點(diǎn)定義執(zhí)行器并使用 ?executor.submit()?
在 4.2 版更改: 添加了關(guān)鍵字參數(shù)以使用替代屬性。
在 5.0 版更改: 始終使用當(dāng)前 IOLoop 而不是 ?self.io_loop?。
在 5.1 版更改: 返回與 ?await兼容的 ?Future而不是 ?concurrent.futures.Future?。
5.1 版后已棄用:?callback?參數(shù)已棄用,將在 6.0 中刪除。 裝飾器本身在新代碼中不鼓勵使用,但不會在 6.0 中刪除。
在 6.0 版更改: ?callback?參數(shù)已刪除。
tornado.concurrent.chain_future(a: Future[_T], b: Future[_T]) → None
將兩個 future 鏈接在一起,這樣當(dāng)一個完成時,另一個也完成。
a 的結(jié)果(成功或失?。⒈粡?fù)制到 b,除非 b 已經(jīng)完成或在 a 完成時取消。
在 5.0 版更改: 現(xiàn)在接受 Tornado/asyncio ?Future對象和 ?concurrent.futures.Future?。
tornado.concurrent.future_set_result_unless_cancelled(future: Union[futures.Future[_T], Future[_T]], value: _T) → None
如果未取消,則將給定值設(shè)置為 ?Future的結(jié)果。
在取消的 ?asyncio.Future 上調(diào)用 ?set_result()? 時避免 ?asyncio.InvalidStateError?。
tornado.concurrent.future_set_exception_unless_cancelled(future: Union[futures.Future[_T], Future[_T]], exc: BaseException) → None
將給定的 ?exc設(shè)置為 ?Future的異常。
如果 ?Future已被取消,則改為記錄異常。 如果不需要此日志記錄,則調(diào)用者應(yīng)顯式檢查 ?Future的狀態(tài)并調(diào)用 ?Future.set_exception? 而不是此包裝器。
在取消的 ?asyncio.Future? 上調(diào)用 ?set_exception()? 時避免 ?asyncio.InvalidStateError?。
tornado.concurrent.future_set_exc_info(future: Union[futures.Future[_T], Future[_T]], exc_info: Tuple[Optional[type], Optional[BaseException], Optional[traceback]]) → None
將給定的 ?exc_info設(shè)置為 ?Future的異常。
了解 ?asyncio.Future? 和舊版本 Tornado 中的擴(kuò)展,以便在 Python 2 上實(shí)現(xiàn)更好的回溯。
5.0 版中的新功能。
在 6.0 版更改: 如果?future?已經(jīng)取消,則此功能是空操作。 (以前會引發(fā) ?asyncio.InvalidStateError?)
tornado.concurrent.future_add_done_callback(future: Union[futures.Future[_T], Future[_T]], callback: Callable[[...], None]) → None
安排在?future?完成時調(diào)用?callback?。
?callback?由?future?參數(shù)調(diào)用的。
如果 ?future已經(jīng)完成,則立即調(diào)用?callback?。 這可能與 ?Future.add_done_callback? 的行為不同,后者不做這樣的保證。
當(dāng)前名稱:創(chuàng)新互聯(lián)Tornado教程:Tornado使用Future對象
文章起源:http://m.fisionsoft.com.cn/article/cojeoeg.html


咨詢
建站咨詢
