social media crossposting tool. 3rd time's the charm
mastodon misskey crossposting bluesky

refactor task worker

zenfyr.dev d79ab06b f76f4be6

verified
Changed files
+12 -4
+12 -4
main.py
···
outputs.append(OUTPUTS[output_settings['type']](input, output_settings, db_worker))
LOGGER.info('Starting task worker...')
-
task_queue = queue.Queue()
-
def worker():
+
def worker(queue: queue.Queue):
while True:
-
task = task_queue.get()
+
task = queue.get()
if task is None:
break
+
try:
task()
+
queue.task_done()
except Exception as e:
LOGGER.error(f"Exception in worker thread!\n{e}")
traceback.print_exc()
-
thread = threading.Thread(target=worker, daemon=True)
+
+
task_queue = queue.Queue()
+
thread = threading.Thread(target=worker, args=(task_queue,))
thread.start()
+
LOGGER.info('Connecting to %s...', input.service)
asyncio.run(input.listen(outputs, lambda x: task_queue.put(x)))
+
+
task_queue.join()
+
task_queue.put(None)
+
thread.join()
if __name__ == "__main__":