Найти - Пользователи
Полная версия: Как сделать что бы программа запускалась в опреденное время?
Начало » Инструментальные средства разработки » Как сделать что бы программа запускалась в опреденное время?
1
Lestat
Как сделать что бы программа написанная на питоне запускалась в определенное время, скажем через каждые 2 часа?
pythonwin
Lestat
Как сделать что бы программа написанная на питоне запускалась в определенное время, скажем через каждые 2 часа?
какая ОС?
в винде поставь в автозагрузку на определенное время, а в linux в hron
Lestat
а можно ли в самой програме вызвать скажем там какойто модуль с помощью которого можно задать чтобы программа запускалась через определенное время?
pythonwin
Lestat
а можно ли в самой програме вызвать скажем там какойто модуль с помощью которого можно задать чтобы программа запускалась через определенное время?
посмотри gobject и нити
nss
import time
while True:
run_program()
sleep(some_time)
pythonwin
nss
import time
while True:
run_program()
sleep(some_time)
можно и так, но тогда в самом цикле тогда не будет возможности выполнять ещё какой-либо код
Lestat
всем огромное спасиба
Cleric
вот тебе зарисовка:

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()

Остоется только немного попилить и добавить синхронизацию.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB