Запуск нескольких функций каждую секунду, запись результата в файл

Я пытаюсь запустить три функции (каждая может занять до 1 секунды для выполнения) каждую секунду. Затем я хотел бы сохранить вывод каждой функции и записать их в отдельные файлы.

На данный момент я использую Timerы для обработки задержки. (Я мог бы подкласс Thread, но это становится немного сложным для этого простого скрипта)

def main:
    for i in range(3):
        set_up_function(i)
        t = Timer(1, run_function, [i])
        t.start()
    time.sleep(100) # Without this, main thread exits

def run_function(i):
    t = Timer(1, run_function, [i])
    t.start()
    print function_with_delay(i)

Какой лучший способ обработки вывода функции function_with_delay? Добавить результат в глобальный список для каждой функции?

Тогда я мог бы поместить что-то вроде этого в конец моей главной функции:

...
while True:
    time.sleep(30) # or in a try/except with a loop of 1 second sleeps so I can interrupt
    for i in range(3):
        save_to_disk(data[i])

Мысли?


Edit: Added my own answer as a possibility

5
задан Alex L 17 January 2012 в 03:48
поделиться