Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 19, 2012 09:50:05

mironich
От:
Зарегистрирован: 2011-05-23
Сообщения: 118
Репутация: +  2  -
Профиль   Отправить e-mail  

Планировщик задач аналог\крон

В общем в одной программе понадобилось написать некое подобие крона, GUI на PyQt задается дата выполнения задачи и время, вот не могу понять как бы все это расщитать и в QTimer загнать, например вбил я 20 число этого месяца, 8 утра, а как отщитать сколько в мсек. до этого события?
Голова не варит…



Офлайн

#2 Окт. 19, 2012 11:35:10

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Планировщик задач аналог\крон

mironich
В общем в одной программе понадобилось написать некое подобие крона, GUI на PyQt задается дата выполнения задачи и время, вот не могу понять как бы все это расщитать и в QTimer загнать, например вбил я 20 число этого месяца, 8 утра, а как отщитать сколько в мсек. до этого события?
Голова не варит…
А зачем считать? Можно написать шедулер, которому передаются события и даты, а он через определенный небольшой промежуток времени (через тот-же QTimer), например минута (или меньше, зависит от необходимой точности), будет проверять текущие дату и время и если они больше или равны запланированному, запускать событие.

Это спасет от изменения времени на компьютере, также проще будет реализовать сохранение событий.

upd:
Касательно перевода разницы дат/времени в миллисекунды, может пригодится:
In [1]: import datetime
 
In [2]: planed = datetime.datetime(2012, 10, 20, 8)
 
In [3]: delta = planed - datetime.datetime.now()
 
In [4]: int(delta.total_seconds() * 1000)
Out[4]: 69616511

Отредактировано reclosedev (Окт. 19, 2012 11:44:40)

Офлайн

#3 Окт. 20, 2012 23:22:53

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Планировщик задач аналог\крон

Qt свой мир там и ищете
а так есть готовое
http://docs.python.org/library/sched.html
http://pypi.python.org/pypi/APScheduler/2.0.3



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version