facebook-tool/tasks/task_runner.py

30 lines
754 B
Python

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