第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在多處理循環(huán)中捕獲異常

在多處理循環(huán)中捕獲異常

桃花長相依 2021-04-30 15:35:28
是否有可能在這樣的可調(diào)用對象中捕獲從循環(huán)引發(fā)的異常concurrent.futures.Executor?--with concurrent.futures.ThreadPoolExecutor(max_workers=num_cores) as executor:    futures = {executor.submit(self._process_ticket, i) for i in items}    concurrent.futures.wait(futures)我試圖遍歷列表中的數(shù)千個對象以執(zhí)行任務(wù),并且只是設(shè)置多處理以更快地處理它們。這很有效,但是由于我正在處理的對象for,在處理過程中可能會從循環(huán)中引發(fā)異常,并且由于正在調(diào)用concurrent.futures.Executor它而使我無法像以前捕獲它那樣捕獲它。下面是一個簡單的示例,說明了我之前是如何通過序列化過程捕獲異常的。我必須創(chuàng)建一種解決方法,以強制迭代再次嘗試處理該對象,并從該步驟繼續(xù)進行,因為異常會導(dǎo)致循環(huán)停止:def task(self, items, step=None):    # items = [list,of,many,objects]    try:        for i in range(0 if step is None else step, len(items)):            with app.app_context():                ## do things with items[i]..    except Exception as e:        self.task(items, i)我基本上是想在循環(huán)被異常中斷的情況下強制再次處理對象,并從該步驟繼續(xù)執(zhí)行循環(huán)。
查看完整描述

1 回答

?
茅侃侃

TA貢獻1842條經(jīng)驗 獲得超21個贊

沒關(guān)系,幾天前就想到了這一點。不知道這是否是完成此任務(wù)的最佳/推薦方法,但似乎可以完成此工作:


with concurrent.futures.ThreadPoolExecutor(max_workers=num_cores) as executor:

    try:

        for i in range(step, len(items)):

            futures = {executor.submit(self.task, items[i])}

    except:

        self.task(items, i)


    concurrent.futures.wait(futures)

仍然開放征求意見/建議


查看完整回答
反對 回復(fù) 2021-05-11
  • 1 回答
  • 0 關(guān)注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號