【发布时间】:2023-03-29 20:01:02
【问题描述】:
我曾问过一个非常相似的问题earlier,但项目范围正在迅速扩大,超出了信号可以带给我的范围(我认为)。基本上,我的程序将在三个不同的时间间隔内执行操作;每 15 秒执行一个函数,以可配置的时间间隔(通常为 5 到 60 秒)执行一个函数,每隔一两个小时执行一个函数。
从直观的角度来看,使用单独的函数调用多个 signal.signal() 似乎不会让我走得太远:ITIMER_REAL 计时器只发出一个信号——SIGALRM,因此无法区分哪个iter 正在发出信号。由于 15 秒间隔函数需要运行而不管其他函数可能发生什么,这让我可以选择多线程或多处理。
我倾向于多处理,希望我可以生成三个子进程,每个子进程都有自己的信号/定时器间隔,并让他们各自在闲暇时完成工作。这可行吗?如果不是,那么让这三个函数按所需时间间隔运行的最佳方法是什么?
【问题讨论】:
标签: python multithreading signals multiprocessing