Stop e-mail-thread on quit or restart
This commit is contained in:
parent
b0cbd0a37a
commit
7a38c05f12
@ -84,6 +84,7 @@ class email_SSL(email):
|
|||||||
class EMailThread(threading.Thread):
|
class EMailThread(threading.Thread):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
self._stopevent = threading.Event()
|
||||||
threading.Thread.__init__(self)
|
threading.Thread.__init__(self)
|
||||||
self.status = 0
|
self.status = 0
|
||||||
self.current = 0
|
self.current = 0
|
||||||
@ -93,16 +94,19 @@ class EMailThread(threading.Thread):
|
|||||||
self.asyncSMTP=None
|
self.asyncSMTP=None
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
while 1:
|
while not self._stopevent.isSet():
|
||||||
doLock = threading.Lock()
|
doLock = threading.Lock()
|
||||||
doLock.acquire()
|
doLock.acquire()
|
||||||
if self.current != self.last:
|
if self.current != self.last:
|
||||||
doLock.release()
|
doLock.release()
|
||||||
self.send_raw_email()
|
self.send_raw_email()
|
||||||
self.current += 1
|
self.current += 1
|
||||||
|
doLock.release()
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
|
||||||
|
def stop(self):
|
||||||
|
self._stopevent.set()
|
||||||
|
|
||||||
def get_send_status(self):
|
def get_send_status(self):
|
||||||
if self.asyncSMTP:
|
if self.asyncSMTP:
|
||||||
return self.asyncSMTP.getTransferStatus()
|
return self.asyncSMTP.getTransferStatus()
|
||||||
@ -134,7 +138,7 @@ class EMailThread(threading.Thread):
|
|||||||
# if more than 50 entries in the list, clean the list
|
# if more than 50 entries in the list, clean the list
|
||||||
addLock = threading.Lock()
|
addLock = threading.Lock()
|
||||||
addLock.acquire()
|
addLock.acquire()
|
||||||
if self.last >= 3:
|
if self.last >= 20:
|
||||||
self.delete_completed_tasks()
|
self.delete_completed_tasks()
|
||||||
# progress, runtime, and status = 0
|
# progress, runtime, and status = 0
|
||||||
self.queue.append({'data':data, 'settings':settings, 'recipent':recipient, 'starttime': 0,
|
self.queue.append({'data':data, 'settings':settings, 'recipent':recipient, 'starttime': 0,
|
||||||
|
@ -70,6 +70,7 @@ class server:
|
|||||||
|
|
||||||
if self.restart == True:
|
if self.restart == True:
|
||||||
web.app.logger.info("Performing restart of Calibre-web")
|
web.app.logger.info("Performing restart of Calibre-web")
|
||||||
|
web.helper.global_eMailThread.stop()
|
||||||
if os.name == 'nt':
|
if os.name == 'nt':
|
||||||
arguments = ["\"" + sys.executable + "\""]
|
arguments = ["\"" + sys.executable + "\""]
|
||||||
for e in sys.argv:
|
for e in sys.argv:
|
||||||
@ -79,6 +80,7 @@ class server:
|
|||||||
os.execl(sys.executable, sys.executable, *sys.argv)
|
os.execl(sys.executable, sys.executable, *sys.argv)
|
||||||
else:
|
else:
|
||||||
web.app.logger.info("Performing shutdown of Calibre-web")
|
web.app.logger.info("Performing shutdown of Calibre-web")
|
||||||
|
web.helper.global_eMailThread.stop()
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
def setRestartTyp(self,starttyp):
|
def setRestartTyp(self,starttyp):
|
||||||
|
Loading…
Reference in New Issue
Block a user