Как реализовать планировщик событий времени в python? - PullRequest
1 голос
/ 14 декабря 2009

В python как реализовать поток, который работает в фоновом режиме (может быть, когда модуль загружается) и вызывает функцию каждую минуту с понедельника по пятницу с 10:00 до 15:00. Например, функция должна вызываться по адресу:

10: 01 10:02 10:03 , , 14:59

Есть указатели?

Среда: Джанго

Спасибо

Ответы [ 5 ]

4 голосов
/ 14 декабря 2009

Django - это серверное приложение, которое реагирует только на внешние события.

Вы должны использовать планировщик типа cron для создания событий, которые вызывают ваше приложение django, либо вызывая подкоманду управления, либо выполняя HTTP-запрос на какой-то специальной странице.

2 голосов
/ 14 декабря 2009

Класс threading.Timer удобен для выполнения таких задач. Но вы должны вычислить интервал самостоятельно.

1 голос
/ 14 декабря 2009

Я думаю, что вы можете сделать команду http://docs.djangoproject.com/en/1.1/howto/custom-management-commands/#howto-custom-management-commands и затем создать ее.

0 голосов
/ 14 декабря 2009

Вот статья о планировании задач в cron из кода Google.

Планирование задач с помощью Cron

0 голосов
/ 14 декабря 2009

Обратите внимание, как django влияет на потоки (если только вы не используете App Engine, где вы не можете делать низкоуровневый такой), но как только ваш поток запущен, вы можете постоянно проверять временные метки:

from datetime import time
from datetime import date
time_delta = 60
while True:
    end_time = time.time() + time_delta
    while time.time() < end_time:
        time.sleep(1)
    if date.today().weekday() in range(1,5):
        #do something baby

Не проверено, поэтому сначала сделайте это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...