Python 定期运行三个函数-多线程?多重处理?
我曾问过一个非常类似的问题,但项目范围正在迅速扩大,超出了信号能给我的范围(我想)。基本上,我的程序将在三个不同的时间间隔内运行;每15秒一个功能,可配置间隔(一般为5至60秒)一个功能,每小时或两小时一个功能 从直观的角度来看,似乎使用单独函数调用多个signal.signal()不会让我走得很远:一个ITIMER\u REAL timer只发出一个信号——SIGALRM,因此无法区分哪个ITIMER发出信号。由于15秒间隔函数需要运行,而不管其他函数发生了什么,这就让我可以选择多线程或多处理Python 定期运行三个函数-多线程?多重处理?,python,multithreading,signals,multiprocessing,Python,Multithreading,Signals,Multiprocessing,我曾问过一个非常类似的问题,但项目范围正在迅速扩大,超出了信号能给我的范围(我想)。基本上,我的程序将在三个不同的时间间隔内运行;每15秒一个功能,可配置间隔(一般为5至60秒)一个功能,每小时或两小时一个功能 从直观的角度来看,似乎使用单独函数调用多个signal.signal()不会让我走得很远:一个ITIMER\u REAL timer只发出一个信号——SIGALRM,因此无法区分哪个ITIMER发出信号。由于15秒间隔函数需要运行,而不管其他函数发生了什么,这就让我可以选择多线程或多处理
我倾向于多处理,希望我能产生三个子进程,每个子进程都有自己的信号/消息间隔,让它们在空闲时各自完成工作。这是否可行?如果不是,那么让这三个函数以所需的时间间隔运行的最佳方法是什么?这是可行的,但是如果这三个循环没有进行任何繁重的计算(需要多核能力),您也可以启动三个线程 或者,你可以让一个循环用一个。将
(时间,任务)
对推送到队列上,其中任务
是要完成的任务的一些描述。然后,在循环中:
- 弹出一个项目
- 等待指定的
时间到期
- 执行任务
- 通过将新项目推到队列上,在5秒、15分钟、2小时后重新安排任务