set process titles, terminate workers
This commit is contained in:
parent
6502e1e3c8
commit
b880b7a121
|
@ -135,10 +135,12 @@ class DevicePoolExecutor:
|
||||||
if proc.is_alive():
|
if proc.is_alive():
|
||||||
logger.debug("shutting down worker for device %s", name)
|
logger.debug("shutting down worker for device %s", name)
|
||||||
proc.join(5)
|
proc.join(5)
|
||||||
|
proc.terminate()
|
||||||
else:
|
else:
|
||||||
logger.warning("worker for device %s has died", name)
|
logger.warning("worker for device %s has died", name)
|
||||||
|
|
||||||
self.workers[name] = None
|
self.workers[name] = None
|
||||||
|
del proc
|
||||||
|
|
||||||
logger.info("starting new workers")
|
logger.info("starting new workers")
|
||||||
|
|
||||||
|
@ -161,6 +163,7 @@ class DevicePoolExecutor:
|
||||||
**kwargs,
|
**kwargs,
|
||||||
) -> None:
|
) -> None:
|
||||||
self.job_count += 1
|
self.job_count += 1
|
||||||
|
logger.debug("pool job count: %s", self.job_count)
|
||||||
if self.job_count > 10:
|
if self.job_count > 10:
|
||||||
self.recycle()
|
self.recycle()
|
||||||
self.job_count = 0
|
self.job_count = 0
|
||||||
|
|
|
@ -3,6 +3,7 @@ import torch # has to come before ORT
|
||||||
from onnxruntime import get_available_providers
|
from onnxruntime import get_available_providers
|
||||||
from torch.multiprocessing import Lock, Queue
|
from torch.multiprocessing import Lock, Queue
|
||||||
from traceback import format_exception
|
from traceback import format_exception
|
||||||
|
from setproctitle import setproctitle
|
||||||
|
|
||||||
from .context import WorkerContext
|
from .context import WorkerContext
|
||||||
from ..server import ServerContext, apply_patches
|
from ..server import ServerContext, apply_patches
|
||||||
|
@ -14,6 +15,8 @@ def logger_init(lock: Lock, logs: Queue):
|
||||||
with lock:
|
with lock:
|
||||||
logger.info("checking in from logger, %s", lock)
|
logger.info("checking in from logger, %s", lock)
|
||||||
|
|
||||||
|
setproctitle("onnx-web logger")
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
job = logs.get()
|
job = logs.get()
|
||||||
with open("worker.log", "w") as f:
|
with open("worker.log", "w") as f:
|
||||||
|
@ -26,6 +29,7 @@ def worker_init(lock: Lock, context: WorkerContext, server: ServerContext):
|
||||||
logger.info("checking in from worker, %s, %s", lock, get_available_providers())
|
logger.info("checking in from worker, %s, %s", lock, get_available_providers())
|
||||||
|
|
||||||
apply_patches(server)
|
apply_patches(server)
|
||||||
|
setproctitle("onnx-web worker: %s", context.device.device)
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
job = context.pending.get()
|
job = context.pending.get()
|
||||||
|
|
|
@ -23,3 +23,4 @@ flask
|
||||||
flask-cors
|
flask-cors
|
||||||
jsonschema
|
jsonschema
|
||||||
pyyaml
|
pyyaml
|
||||||
|
setproctitle
|
|
@ -14,5 +14,5 @@ do
|
||||||
--insecure || break;
|
--insecure || break;
|
||||||
((test_images++));
|
((test_images++));
|
||||||
echo "waiting after $test_images";
|
echo "waiting after $test_images";
|
||||||
sleep 10;
|
sleep 30;
|
||||||
done
|
done
|
||||||
|
|
Loading…
Reference in New Issue