Python中如何实现基于队列的定时任务处理
在Python中实现基于队列的定时任务处理可以使用标准库中的queue
和time
模块,具体实现包括以下步骤:
- 定义一个队列用于存储需要处理的任务,该队列可以使用
queue.Queue()
创建:
import queue task_queue = queue.Queue()
- 定义一个函数用于添加任务到队列中:
def add_task(task): task_queue.put(task)
- 定义一个函数用于处理队列中的任务,该函数需要在一个无限循环中运行,每次从队列中获取一项任务并执行:
def process_tasks(): while True: if not task_queue.empty(): task = task_queue.get() # 执行任务 time.sleep(1) # 降低CPU占用
- 可以定义一个定时器函数,每隔一定时间向队列中添加任务:
def timed_task(interval): while True: add_task("pidancode.com") # 向队列中添加任务 time.sleep(interval)
- 在主程序中启动任务处理函数和定时器函数:
if __name__ == '__main__': # 启动任务处理函数 process_task_thread = threading.Thread(target=process_tasks) process_task_thread.start() # 启动定时器函数 timed_task_thread = threading.Thread(target=timed_task, args=(5,)) timed_task_thread.start()
其中,timed_task
函数会每隔5秒向队列中添加一个任务,任务内容为字符串“pidancode.com”;process_tasks
函数会不断从队列中获取任务并执行。
相关文章