mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
clean threads before exiting
This commit is contained in:
parent
1a1c88deff
commit
8936d82747
@ -100,6 +100,14 @@ class ThreadWorker(base.Worker):
|
|||||||
self._lock = RLock()
|
self._lock = RLock()
|
||||||
super(ThreadWorker, self).init_process()
|
super(ThreadWorker, self).init_process()
|
||||||
|
|
||||||
|
def handle_quit(self, sig, frame):
|
||||||
|
self.alive = False
|
||||||
|
# worker_int callback
|
||||||
|
self.cfg.worker_int(self)
|
||||||
|
self.tpool.shutdown(False)
|
||||||
|
time.sleep(0.1)
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
def _wrap_future(self, fs, conn):
|
def _wrap_future(self, fs, conn):
|
||||||
fs.conn = conn
|
fs.conn = conn
|
||||||
self.futures.append(fs)
|
self.futures.append(fs)
|
||||||
@ -210,14 +218,12 @@ class ThreadWorker(base.Worker):
|
|||||||
|
|
||||||
if not result.done:
|
if not result.done:
|
||||||
break
|
break
|
||||||
|
|
||||||
else:
|
else:
|
||||||
[self.futures.remove(f) for f in result.done]
|
[self.futures.remove(f) for f in result.done]
|
||||||
|
|
||||||
self.tpool.shutdown(False)
|
self.tpool.shutdown(False)
|
||||||
self.poller.close()
|
self.poller.close()
|
||||||
|
|
||||||
|
|
||||||
def finish_request(self, fs):
|
def finish_request(self, fs):
|
||||||
if fs.cancelled():
|
if fs.cancelled():
|
||||||
fs.conn.close()
|
fs.conn.close()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user