이벤트 구동 괄호가 있는데 스팸 방지 기능을 구현하려고합니다. 나는 응용 프로그램의 나머지 부분을 차단하지 않고 일정 기간 동안 심하게 행동하는 사용자를 침묵 시키려고합니다.Python 지연 루프를 실행하는 가장 고통스러운 방법입니다.
다음은 작동하지 않습니다 무엇 :
는if user_behaving_badly():
ban(user)
time.sleep(penalty_duration) # Bad! Blocks the entire application!
unban(user)
이상적으로, user_behaving_badly()가 true 인 경우, 나는 아무것도하지 않는 새로운 스레드를 시작하지만 사용자를 금지 한 후 잠시 동안 잠을하려는의 접근을 허용 사용자, 스레드가 사라집니다.
According to this 나는 다음과 같은 사용하여 내 목표를 달성 할 수
if user_behaving_badly():
thread.start_new_thread(banSleepUnban, (user, penalty))
"단순이"보통 "좋은"의 지표이며,이 꽤 간단하지만 내가 스레드에 대해 들어 본 모든 것을 말했다 그들은 예상치 못한 방식으로 당신을 물 수 있습니다. 내 질문 : 이 응용 프로그램의 나머지 부분을 차단하지 않고 간단한 지연 루프를 실행하는보다 나은 방법 있는가?
하면이 클라이언트 - 서버 애플리케인가 기각? – NullUserException
예, 클라이언트 - 서버입니다. 나는 고객에 대한 통제권이 없다. –