Ich hatte eine sehr ähnliche Frage gestellt früher aber der Projektumfang wächst schnell über das hinaus, was ich mit Signalen erreichen kann (denke ich). Grundsätzlich wird mein Programm Dinge in drei verschiedenen Intervallen tun; eine Funktion alle 15 Sekunden, eine Funktion in einem konfigurierbaren Intervall (5 bis 60 Sekunden, im Allgemeinen) und eine Funktion alle ein oder zwei Stunden.
Von einem intuitiven Standpunkt aus scheint es, als ob mehrere signal.signal()-Aufrufe mit separaten Funktionen mich nicht sehr weit bringen würden: ein ITIMER_REAL-Timer gibt nur ein Signal aus - SIGALRM, und daher gäbe es keine Möglichkeit zu unterscheiden, welcher Itimer das Signal ausgibt. Da die 15-Sekunden-Intervall-Funktion braucht unabhängig von den anderen Funktionen ausgeführt werden soll, bleibt mir die Wahl zwischen Multithreading und Multiprocessing.
Ich neige in Richtung Multiprocessing, in der Hoffnung, dass ich nur drei Kindprozesse, jeder mit seinen eigenen Signal / Timer-Intervalle, und lassen Sie sie jeweils ihre Arbeit in ihrer Freizeit zu tun spawnen kann. Ist dies machbar? Wenn nicht, was wäre der beste Weg, um diese drei Funktionen in den gewünschten Intervallen laufen zu lassen?