日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Django如何使用asyncio協程和ThreadPoolExecutor多線程

瀏覽:260日期:2024-09-21 10:57:09

Django視圖函數執行,不在主線程中,直接loop = asyncio.new_event_loop() # 不能loop = asyncio.get_event_loop() 會觸發RuntimeError: There is no current event loop in thread

因為asyncio程序中的每個線程都有自己的事件循環,但它只會在主線程中為你自動創建一個事件循環。所以如果你asyncio.get_event_loop在主線程中調用一次,它將自動創建一個循環對象并將其設置為默認值,但是如果你在一個子線程中再次調用它,你會得到這個錯誤。相反,您需要在線程啟動時顯式創建/設置事件循環:

loop = asyncio.new_event_loop()asyncio.set_event_loop(loop)

在Django單個視圖中使用asyncio實例代碼如下(有多個IO任務時)

from django.views import Viewimport asyncioimport timefrom django.http import JsonResponse class TestAsyncioView(View): def get(self, request, *args, **kwargs): ''' 利用asyncio和async await關鍵字(python3.5之前使用yield)實現協程 ''' self.id = 5 start_time = time.time() ’’’ # 同步執行 # results = [self.io_task1(self.id), # self.io_task2(self.id), # self.io_task2(self.id)] ’’’ loop = asyncio.new_event_loop() # 或 loop = asyncio.SelectorEventLoop() asyncio.set_event_loop(loop) self.loop = loop works = [ asyncio.ensure_future(self.io_task3(5)), asyncio.ensure_future(self.io_task3(5)), asyncio.ensure_future(self.io_task3(5)), asyncio.ensure_future(self.io_task3(5)), asyncio.ensure_future(self.io_task3(5)), ] try: results = loop.run_until_complete(asyncio.gather(*works)) # 兩種寫法 # results = loop.run_until_complete(self.gather_tasks()) finally: loop.close() end_time = time.time() return JsonResponse({’results’: results, ’cost_time’: (end_time - start_time)}) async def gather_tasks(self): tasks = ( self.make_future(self.io_task1, self.id), self.make_future(self.io_task2, self.id), self.make_future(self.io_task2, self.id), self.make_future(self.io_task1, self.id), self.make_future(self.io_task2, self.id), self.make_future(self.io_task2, self.id), ) results = await asyncio.gather(*tasks) return results async def make_future(self, func, *args): future = self.loop.run_in_executor(None, func, *args) response = await future return response def io_task1(self, sleep_time): time.sleep(sleep_time) return 66 def io_task2(self, sleep_time): time.sleep(sleep_time) return 77 async def io_task3(self, sleep_time): # await asyncio.sleep(sleep_time) s = await self.do(sleep_time) return s async def do(self, sleep_time): await asyncio.sleep(sleep_time) return 66

在Django單個視圖中使用ThreadPoolExecutor實例代碼如下(有多個IO任務時)

from django.views import Viewimport timefrom concurrent.futures import ThreadPoolExecutor, as_completed class TestThreadView(View): def get(self, request, *args, **kargs): start_time = time.time() future_set = set() tasks = (self.io_task1, self.io_task2, self.io_task2, self.io_task1, self.io_task2, self.io_task2) with ThreadPoolExecutor(len(tasks)) as executor: for task in tasks:future = executor.submit(task, 5)future_set.add(future) for future in as_completed(future_set): error = future.exception() if error is not None:raise error results = self.get_results(future_set) end_time = time.time() return JsonResponse({’results’: results, ’cost_time’: (end_time - start_time)}) def get_results(self, future_set): results = [] for future in future_set: results.append(future.result()) return results def io_task1(self, sleep_time): time.sleep(sleep_time) return 66 def io_task2(self, sleep_time): time.sleep(sleep_time) return 77

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲资源网站| 尤物精品在线| 日韩影院在线观看| 五月天久久网站| av一区二区高清| 99久久夜色精品国产亚洲狼| 国产91欧美| 日韩在线观看| 久久视频一区| 欧美午夜精彩| 欧美天堂一区| 成人免费网站www网站高清| 免费中文字幕日韩欧美| 亚洲精品一二| 亚洲开心激情| 欧美精品1区| 国产精品一区二区中文字幕| 久久婷婷丁香| 欧美成人精品一级| 日韩国产精品久久久久久亚洲| 亚洲免费播放| 欧美精品一区二区久久| 国产日韩电影| 福利一区在线| 国产乱码午夜在线视频| 精品国产aⅴ| 免费日韩成人| 不卡一区2区| 亚洲欧洲av| 国产精品videosex极品| 深夜福利视频一区二区| 亚洲精品va| 国产日韩在线观看视频| av在线最新| 蜜臀91精品一区二区三区| 精品国产三区在线| 首页国产欧美久久| 国产精品久久久久久久免费观看| 91高清一区| 黄色网一区二区| 91精品美女| 亚洲一区二区三区高清| 国产一区二区三区探花| 一区二区国产在线观看| 激情综合五月| 欧美久久一区二区三区| 制服诱惑一区二区| 丁香六月综合| 久久av影院| 日韩国产在线观看| 欧美综合二区| 合欧美一区二区三区| 岛国av在线网站| 免费观看亚洲天堂| 国产精品嫩草影院在线看| 一区二区三区四区日韩| 欧美在线影院| 亚洲女同一区| 九九在线精品| 日韩av自拍| 国产一区二区精品福利地址| 久久激情五月激情| 亚洲精品欧美| 日韩有吗在线观看| 亚洲一区二区三区中文字幕在线观看| 欧美aa国产视频| 国产麻豆综合| 日韩一区二区三免费高清在线观看| 亚洲在线成人| 国产精品一区二区免费福利视频| 国产欧美精品久久| 日产精品一区二区| 欧美日韩免费观看一区=区三区| 亚洲免费播放| 亚洲欧美日韩国产一区| 18国产精品| 福利片在线一区二区 | 日韩在线短视频| 国产一区二区三区四区五区 | 国内精品美女在线观看| 日韩不卡视频在线观看| 日韩专区视频网站| 久久久久99| 日韩av一区二区三区| 国产一区二区三区视频在线| 久久精品成人| 国产亚洲字幕| 午夜久久美女| 中国字幕a在线看韩国电影| 亚洲调教视频在线观看| 国产精品亚洲产品| 视频一区中文字幕国产| 中文另类视频| 精品日韩一区| 亚洲另类av| 成人免费电影网址| 国产黄色精品| 视频一区免费在线观看| 久久激情一区| 首页国产精品| 国产精品theporn| 亚洲一级淫片| 亚洲影院天堂中文av色| 91久久久久| 亚洲91久久| sm捆绑调教国产免费网站在线观看| 亚洲精品少妇| 免费精品视频| 男女激情视频一区| 亚洲一区二区三区免费在线观看| 蜜桃国内精品久久久久软件9| 快播电影网址老女人久久| 精品国产18久久久久久二百| 69堂精品视频在线播放| 蜜臀av性久久久久蜜臀aⅴ四虎| 九九在线精品| 黑丝一区二区三区| 一级欧美视频| 日韩深夜视频| 麻豆91精品91久久久的内涵| 亚洲免费影院| 日韩在线视频一区二区三区| 国产精品v日韩精品v欧美精品网站| 三上亚洲一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美日韩一区自拍| 日本免费久久| 日韩高清一区| 欧美日韩在线网站| 欧美在线亚洲| 欧美极品一区二区三区| 日韩国产综合| 综合五月婷婷| 成人免费电影网址| 国产欧美日韩免费观看| 精品不卡一区| 99亚洲视频| 久久精品国产亚洲aⅴ| 91tv亚洲精品香蕉国产一区| 午夜国产一区二区| 日韩一区精品| 国产高潮在线| 免费成人av在线播放| 88久久精品| 亚洲午夜精品久久久久久app| 亚洲一区二区三区免费在线观看| 亚洲精品一级| 国产91在线播放精品| 日韩免费看片| 少妇精品久久久| 亚洲国产欧美日本视频| 老司机精品久久| 日韩大片在线| 久久国产麻豆精品| 亚洲激情五月| 在线手机中文字幕| 日本电影久久久| 午夜av一区| 日韩av免费大片| 国产精品一区二区免费福利视频| 久久久久久免费视频| 国产精品欧美在线观看| 首页国产欧美久久| 婷婷六月综合| 国产精品成人自拍| 鲁大师成人一区二区三区| 新版的欧美在线视频| 国产亚洲一卡2卡3卡4卡新区| 五月天激情综合网| 精品捆绑调教一区二区三区| 国产区精品区| 国产麻豆精品| 婷婷综合六月| 麻豆视频在线观看免费网站黄| 久久狠狠久久| 一区二区三区国产在线| 米奇777超碰欧美日韩亚洲| 亚洲免费一区二区| 99视频精品免费观看| 欧美69视频| 蜜臀av亚洲一区中文字幕| 久久www成人_看片免费不卡| 99国产成+人+综合+亚洲欧美| 欧美搞黄网站| 国产精品毛片一区二区三区| 久久先锋影音| 国产精品夜夜夜| 国产夫妻在线| 性欧美xxxx免费岛国不卡电影| 蜜臀久久精品| 日韩国产综合| 激情五月综合网| 亚洲日韩中文字幕一区| 国产亚洲一区二区三区不卡| 精品久久久久久久| 国产一区观看| 欧美一区精品| 91精品国产调教在线观看| 日韩亚洲精品在线观看| 精品日韩在线|