2023-02-26 05:49:39 +00:00
|
|
|
from logging import getLogger
|
|
|
|
from torch.multiprocessing import Lock
|
|
|
|
from time import sleep
|
2023-02-26 05:55:30 +00:00
|
|
|
from traceback import print_exception
|
2023-02-26 05:49:39 +00:00
|
|
|
|
|
|
|
from .context import WorkerContext
|
|
|
|
|
|
|
|
logger = getLogger(__name__)
|
|
|
|
|
|
|
|
def logger_init(lock: Lock, context: WorkerContext):
|
|
|
|
logger.info("checking in from logger")
|
|
|
|
|
|
|
|
with open("worker.log", "w") as f:
|
|
|
|
while True:
|
|
|
|
if context.pending.empty():
|
|
|
|
logger.info("no logs, sleeping")
|
|
|
|
sleep(5)
|
|
|
|
else:
|
|
|
|
job = context.pending.get()
|
|
|
|
logger.info("got log: %s", job)
|
|
|
|
f.write(str(job) + "\n\n")
|
|
|
|
|
|
|
|
|
|
|
|
def worker_init(lock: Lock, context: WorkerContext):
|
|
|
|
logger.info("checking in from worker")
|
|
|
|
|
|
|
|
while True:
|
|
|
|
if context.pending.empty():
|
|
|
|
logger.info("no jobs, sleeping")
|
|
|
|
sleep(5)
|
|
|
|
else:
|
|
|
|
job = context.pending.get()
|
|
|
|
logger.info("got job: %s", job)
|
2023-02-26 05:55:30 +00:00
|
|
|
try:
|
|
|
|
fn, args, kwargs = job
|
|
|
|
fn(context, *args, **kwargs)
|
|
|
|
logger.info("finished job")
|
|
|
|
except Exception as e:
|
|
|
|
print_exception(type(e), e, e.__traceback__)
|
|
|
|
|