import threading import queue import time class TaskRunner: def __init__(self): self.task_queue = queue.Queue() self.running = False def start(self): self.running = True worker = threading.Thread(target=self.run, daemon=True) worker.start() def stop(self): self.running = False def add_task(self, func, *args, **kwargs): """Thêm task vào hàng đợi""" self.task_queue.put((func, args, kwargs)) def run(self): while self.running: try: func, args, kwargs = self.task_queue.get(timeout=1) func(*args, **kwargs) self.task_queue.task_done() except queue.Empty: continue