Уведомления

Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Июнь 27, 2007 13:25:42

Lestat
От:
Зарегистрирован: 2007-06-21
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать что бы программа запускалась в опреденное время?

Как сделать что бы программа написанная на питоне запускалась в определенное время, скажем через каждые 2 часа?



Офлайн

#2 Июнь 27, 2007 13:32:21

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать что бы программа запускалась в опреденное время?

Lestat
Как сделать что бы программа написанная на питоне запускалась в определенное время, скажем через каждые 2 часа?
какая ОС?
в винде поставь в автозагрузку на определенное время, а в linux в hron



Офлайн

#3 Июнь 27, 2007 13:35:55

Lestat
От:
Зарегистрирован: 2007-06-21
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать что бы программа запускалась в опреденное время?

а можно ли в самой програме вызвать скажем там какойто модуль с помощью которого можно задать чтобы программа запускалась через определенное время?



Офлайн

#4 Июнь 27, 2007 13:59:35

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать что бы программа запускалась в опреденное время?

Lestat
а можно ли в самой програме вызвать скажем там какойто модуль с помощью которого можно задать чтобы программа запускалась через определенное время?
посмотри gobject и нити



Офлайн

#5 Июнь 27, 2007 14:00:04

nss
От:
Зарегистрирован: 2007-01-06
Сообщения: 103
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать что бы программа запускалась в опреденное время?

import time
while True:
run_program()
sleep(some_time)



Офлайн

#6 Июнь 27, 2007 14:01:54

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать что бы программа запускалась в опреденное время?

nss
import time
while True:
run_program()
sleep(some_time)
можно и так, но тогда в самом цикле тогда не будет возможности выполнять ещё какой-либо код



Офлайн

#7 Июнь 27, 2007 14:04:04

Lestat
От:
Зарегистрирован: 2007-06-21
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать что бы программа запускалась в опреденное время?

всем огромное спасиба



Офлайн

#8 Июнь 29, 2007 01:31:27

Cleric
От:
Зарегистрирован: 2007-06-26
Сообщения: 87
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сделать что бы программа запускалась в опреденное время?

вот тебе зарисовка:

import sched, time
from threading import Thread
from copy import copy

class SchedulerThread(Thread):

def __init__(self):
Thread.__init__(self)
self.scheduler = sched.scheduler(time.time, time.sleep)
self.__ssTasks =
self.__times = {}


def add(self, action, delaytime, singleShot=False, priority=1, *args):
event = self.scheduler.enter(delaytime, priority, action, args)
if(singleShot):
self.__ssTasks.append(event)

self.__times = delaytime
return event


def cancel(self, event):
self.scheduler.cancel(event)


def run(self):
while True:
queue = copy(self.scheduler.queue)
self.scheduler.run()

for task in self.__ssTasks:
try:
inx = queue.index(task)
del self.__times
del queue
except (IndexError, KeyError):
pass

self.__ssTasks =

for task in queue:
time, priority, action, args = task
delaytime = self.__times
event = self.scheduler.enter(delaytime, priority, action, args)
self.__times = delaytime

и для тестирования:

scheduler = SchedulerThread()

def print_time(x):
print “print_time%i:” % x, time.time()


def test():
scheduler.add(print_time,10,False,1,(1))
scheduler.add(print_time,7,False,1,(2))
scheduler.start()


test()
print “leave test():”, time.time()

Остоется только немного попилить и добавить синхронизацию.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version