2010-10-11 2 views
2

Есть ли простой способ получить сегмент кода python для запуска каждые 5 минут?Активировать программу Python каждые 5 минут?

Я знаю, что могу это сделать, используя time.sleep(), но был ли другой способ?

Например, я хочу, чтобы запустить это каждые 5 минут:

x = 0 
def run_5(): 
    print "5 minutes later" 
    global x += 5 
    print x, "minutes since start" 

Это только подделкой пример, но идея есть.

Любые идеи?

Я нахожусь на linux и с удовольствием использую cron, но просто интересно, была ли альтернатива python?

+1

http://stackoverflow.com/questions/373335/suggestions-for-a-cron-like-scheduler-in-python – Emil

ответ

2

вы можете сделать это с помощью модуля

>>> import threading 
>>> END = False 
>>> def run(x=0): 
...  x += 5 
...  print x 
...  if not END: 
...   threading.Timer(1.0, run, [x]).start() 
... 
>>> threading.Timer(1.0, run, [x]).start() 
>>> 5 
10 
15 
20 
25 
30 
35 
40 

заправочной Затем, когда вы хотите, чтобы остановить, установить END = True.

2

Возможно, вы захотите взглянуть на cron, если вы используете ОС типа * nix. Вы можете легко запустить его программировать через каждые 5 минут

http://www.unixgeeks.org/security/newbie/unix/cron-1.html

https://help.ubuntu.com/community/CronHowto

+0

Я нахожусь в linux и с удовольствием использую cron, но мне просто интересно, была ли альтернатива python ? –

+0

Используя cron, каждый запуск вашей программы будет независимым. Если он сбой или сбой за один проход, cron все равно выполнит его за пять минут. Вы могли бы имитировать это поведение на python, но это потребует некоторой мысли, особенно если вы хотите получить результат неудачного прогона. – AndrewF

+0

"some thought" = try catch – Phob

0

Если вы на платформе окон, вы можете использовать запланированное задание.

В противном случае используйте cron, замечательный, замечательный cron.

Смежные вопросы