бегущие часы и запуск - PullRequest
       2

бегущие часы и запуск

3 голосов
/ 11 февраля 2010

постоянно работают часы и запускают другую функцию каждые 5 секунд.

Пожалуйста, дайте мне идею, как это сделать.

Спасибо большое

Ответы [ 3 ]

4 голосов
/ 11 февраля 2010
>>> import sched, time
>>> s = sched.scheduler(time.time, time.sleep)
>>> def print_time():
...     s.enter(5, 1, print_time, ())
...     print "From print_time", time.time()
... 
>>> s.enter(0, 1, print_time, ())
Event(time=1265846894.4069381, priority=1, action=<function print_time at 0xb7d1ab1c>, argument=())
>>> s.run()
From print_time 1265846894.41
From print_time 1265846899.41
From print_time 1265846904.42
From print_time 1265846909.42
1 голос
/ 11 февраля 2010

Вы можете использовать планировщик из модуля sched .

Просто сделайте запланированную функцию перепланировать себя каждый раз, когда она завершится.

1 голос
/ 11 февраля 2010
import time

while True:
    time.sleep(5)
    someFunction()

Как говорит gnibbler, интервал фактически будет (5 секунд + время, необходимое для запуска некоторой функции). Если вам нужно ровно 5 секунд:

targetTime = time.time()
while True:
    someFunction()
    targetTime += 5
    sleepTime = targetTime - time.time()
    if sleepTime>0:
        time.sleep(sleepTime)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...