1
以下是我的瓶子代碼。我正在使用帶有gevent循環的uWSGI。從請求開始,如果整個請求的時間超過90毫秒,我需要返回false。 我沒有得到如何使用gevent在90ms後超時。阻塞碼少於2毫秒。它的redis調用是這個問題。在沒有負載或負載很小的情況下...整個請求需要20ms以下。在嚴重負載下,Redis呼叫可能需要更長的時間......如果時間更長,我需要超時。因此,從第一次redis調用中,如果超過90毫秒的返回超時。如果小於90ms,則計算餘數。例如。如果呼叫一個需要60毫秒,那麼我有兩個30毫秒的呼叫。如果呼叫2需要更長的時間然後超過30毫秒。uWSGI,gevent,一些redis調用以及如何超過90毫秒超時後
@post('/test')
def test():
#START THE TIMER
#SOME BLOCKING CODE
#MAKE A REDIS CALL AND SERVICE OTHER REQUESTS
jt = [gevent.spawn(redis_call)]
gevent.joinall(jt)
#SOME BLOCKING CODE
#MAKE A REDIS CALL AND SERVICE OTHER REQUESTS
jt = [gevent.spawn(redis_call)]
gevent.joinall(jt)
if total_time<.09:
yield "passed"
else:
yield "failed"
我試過,但沒有奏效。它沒有超時。 jt = gevent.spawn(cookie_redis_call,guid) jt.join(.0009) jt.kill() – Tampa
確保你的猴子補丁redis-py變得合作 –
太棒了!它的工作,但如何知道是否有超時?現在我沒有。但我需要知道,如果有一個由於超時沒有,而不是沒有做到沒有鑰匙.... – Tampa