2
我问了一个非常类似的问题earlier,但项目范围正在迅速增长,超出了信号可以让我(我认为)的地方。基本上,我的计划将在三个不同的时间间隔内进行。每15秒一个功能,一个功能在一个可配置的时间间隔(一般为5到60秒),一个功能每一个小时或两个。定期运行三个函数 - 多线程?多?
从直观的角度来看,似乎多个signal.signal()调用具有单独的函数并不会让我走得太远:ITIMER_REAL定时器只发出一个信号 - SIGALRM,因此将无法区分itimer正在发出信号。由于15秒间隔函数需要运行而不管其他函数可能发生什么,这使我可以选择多线程或多处理。我倾向于多处理,希望我可以产生三个子进程,每个子进程都有自己的信号/ itimer间隔,并让他们各自在闲暇时完成工作。这是可行的吗?如果不是的话,那么让这三个函数以期望的间隔运行的最佳方式是什么?
我的担心是封锁;其中一项任务涉及访问一个网站,如果该网站不可用,我不希望15秒间隔任务因此而被阻止。另外,因为信号文档(http://docs.python.org/library/signal.html)表明尝试从除主函数以外的线程调用signal.signal(),所以我在考虑MP而不是MT。线程会引发错误。 – 2012-03-10 15:27:24