python schedule定时任务多进程
时间: 2023-07-04 13:19:27 浏览: 112
可以使用 Python 的 `multiprocessing` 模块来实现在多个进程中执行定时任务。具体实现方法可以参考以下代码:
```python
import schedule
import time
import multiprocessing
def job():
# 任务函数,可以自定义
print("I'm working...")
if __name__ == '__main__':
# 创建进程池
pool = multiprocessing.Pool(processes=4)
# 添加任务到进程池
pool.apply_async(job)
# 启动定时任务
schedule.every(10).seconds.do(pool.apply_async, job)
# 循环执行定时任务
while True:
schedule.run_pending()
time.sleep(1)
```
在上面的代码中,我们首先创建了一个进程池(`multiprocessing.Pool(processes=4)`),然后使用 `pool.apply_async()` 方法将任务函数添加到进程池中。接着,我们使用 `schedule.every().do()` 方法来定义定时任务,其中在调用任务函数时使用了进程池的 `apply_async()` 方法。最后,在一个循环中调用 `schedule.run_pending()` 方法来运行定时任务。
需要注意的是,在使用 multiprocessing 模块时,我们需要将任务函数放在 `if __name__ == '__main__':` 中,以避免出现进程间通信问题。另外,进程池的大小需要根据实际情况进行调整,以充分利用多核 CPU 的性能。