我想保持線程工作事件,如果它引發一個錯誤。 (python2)Python,如何保持線程正常工作?
工作線程:
def thread_update(n):
"""Send the data to server per n second."""
while True:
update_data() # the function that posting data to server
time.sleep(n)
thread_u = threading.Thread(name='thread_u', target=thread_update, args=(5,))
thread_u.start()
當我關閉服務器,該thread_u會引發錯誤並退出:
Exception in thread thread_u
...
HTTPError: HTTP Error 502: Bad Gateway
所以我創建了一個守護線程,以保持它的工作(當thread_u退出時,我想再次啓動它)
守護線程:
def thread_daemon(n):
while True:
if not thread_u.isAlive():
thread_u.run()
time.sleep(n)
thread_d = threading.Thread(name='thread_d', target=thread_daemon, args(60))
thread_d.start()
現在的問題是,守護進程只是一次工作,並退出相同的錯誤。
Exception in thread thread_u
...
HTTPError: HTTP Error 502: Bad Gateway
Exception in thread thread_d
...
HTTPError: HTTP Error 502: Bad Gateway
是否有無論如何保持thread_d工作事件,如果它引發一個錯誤。或者無論如何保持thread_u工作事件,如果它引發一個錯誤。