是為了防止url不可訪問,或者響應(yīng)速度太慢而造成的時間浪費(fèi)。

為遼寧等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及遼寧網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、做網(wǎng)站、遼寧網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
比如,你要爬取1000個網(wǎng)站,如果有100個需要30s才能返回數(shù)據(jù),你等待他們返回的話就需要3000s了,如果你設(shè)置10s超時,那么就能知道最長需要多久1000個可以爬完。
如果解決了您的問題請采納!
如果未解決請繼續(xù)追問
在你的這個思路中,可以優(yōu)化的主要就是幾方面:
1:求因數(shù)可以僅算到n的平方根q為止,對于n,每有一個小于q的因數(shù),就有一個對應(yīng)的大于q的因數(shù),兩者之積為n。
2:在完數(shù)函數(shù)中已經(jīng)完成了求因數(shù)的工作,不需要另做一次,直接在完數(shù)函數(shù)中拼裝結(jié)果即可。
3:目前來說,已知的完全數(shù)都是偶數(shù),因此,最后那行那里可以做num+=2優(yōu)化,但數(shù)學(xué)上目前還沒有證明不存在奇完全數(shù),這種做法從理論上來說是不嚴(yán)謹(jǐn)?shù)摹?/p>
實際上,當(dāng)一個數(shù)比較大的時候,做因數(shù)分解是一個很費(fèi)時的工作,要找更大的完數(shù),需要更好的因數(shù)分解的方式。比如先求出所有的質(zhì)因數(shù),在使用這些質(zhì)因數(shù)的組合來尋找非質(zhì)因數(shù)。因為質(zhì)因數(shù)必然是在質(zhì)數(shù)表中,而質(zhì)數(shù)表可以建立一次然后重復(fù)使用,相對一個個的試商就快得多了。
如果要進(jìn)一步優(yōu)化以尋找更大的完全數(shù),那么,就需要利用更多的關(guān)于完全數(shù)的規(guī)律了,比如,除6以外,其它的完全數(shù)都是9n+1,都是p^2*q……,這些優(yōu)化在你這個框架下實現(xiàn)就比較麻煩。
總體來說,不解決因數(shù)分解的問題,主要就是上述三種優(yōu)化了。
超時機(jī)制。python中調(diào)用兩個函數(shù)需要給函數(shù)設(shè)置超時機(jī)制,以防止它超時,這里可以用python的signal模塊,signal模塊可以實現(xiàn)程序內(nèi)部的信號處理。
為了避免由于一些網(wǎng)絡(luò)或其他不可控因素,而引起的功能性問題。比如在發(fā)送請求時,會因為網(wǎng)絡(luò)不穩(wěn)定,往往會有請求超時的問題。
這種情況下,我們通常會在代碼中加入重試的代碼。重試的代碼本身不難實現(xiàn),但如何寫得優(yōu)雅、易用,是我們要考慮的問題。
這里要給大家介紹的是一個第三方庫 - Tenacity ,它實現(xiàn)了幾乎我們可以使用到的所有重試場景,比如:
在使用它之前 ,先要安裝它
無條件重試,重試之間無間隔
無條件重試,但是在重試之前要等待 2 秒
只重試7 次
重試 10 秒后不再重試
或者上面兩個條件滿足一個就結(jié)束重試
在出現(xiàn)特定錯誤/異常(比如請求超時)的情況下,再進(jìn)行重試
在滿足自定義條件時,再進(jìn)行重試。
如下示例,當(dāng) test_retry 函數(shù)返回值為 False 時,再進(jìn)行重試
如果想對一個異常進(jìn)行重試,但是最多重試3次。
下面這個代碼是無效的,因為它會一直重試,重試三次的限制不會生效,因為它的條件是有順序的,在前面的條件會先被走到,就永遠(yuǎn)走不到后面的條件。
如果你把 stop_after_attempt 寫到前邊,就沒有問題了。
當(dāng)出現(xiàn)異常后,tenacity 會進(jìn)行重試,若重試后還是失敗,默認(rèn)情況下,往上拋出的異常會變成 RetryError,而不是最根本的原因。
因此可以加一個參數(shù)( reraise=True ),使得當(dāng)重試失敗后,往外拋出的異常還是原來的那個。
當(dāng)最后一次重試失敗后,可以執(zhí)行一個回調(diào)函數(shù)
輸出如下
摘自黑魔法手冊
本文名稱:python函數(shù)超時重試的簡單介紹
文章出自:http://chinadenli.net/article16/hpjjgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、做網(wǎng)站、網(wǎng)站設(shè)計公司、App設(shè)計、全網(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)