我有一個事件驅動的聊天機器人,我試圖實施垃圾郵件防護。我想要沉默一段時間內表現糟糕的用戶,而不會阻塞應用程序的其餘部分。運行Python延遲循環最痛苦的方式
這裏是行不通:
if user_behaving_badly():
ban(user)
time.sleep(penalty_duration) # Bad! Blocks the entire application!
unban(user)
理想的情況下,如果user_behaving_badly()是真實的,我要開始一個新的線程它什麼也不做,但禁止用戶,然後睡了一會兒,黑名單中刪除用戶,然後該線程消失。
According to this我可以使用下面的完成我的目標:
if user_behaving_badly():
thread.start_new_thread(banSleepUnban, (user, penalty))
「簡單」通常是「好」的指標,這是很簡單的,但就我聽到的關於線程曾表示,他們會以意想不到的方式咬你。我的問題是:有沒有比這更好的方式來運行一個簡單的延遲循環而不會阻塞應用程序的其餘部分?
這是一個客戶端 - 服務器APPLICA重刑? – NullUserException
是的,它是客戶端服務器。我無法控制客戶。 –