Как использовать нить в Django - PullRequest
0 голосов
/ 06 апреля 2010

Я хочу проверить подписку пользователей на определенный период. И отправлять почту пользователям, подписка которых заканчивается (например, напоминает два дня). Я думаю, что лучший способ - использовать нить и таймер для проверки дат. Но я понятия не имею, как вызвать эту функцию. Я не хочу делать отдельную программу или оболочку. Я хочу объединить эту процедуру с моим кодом Django. Я попытался вызвать эту функцию в моем файле settings.py. Но, похоже, это не очень хорошая идея. Он вызывает функцию и создает поток каждый раз, когда я импортирую настройки.

Ответы [ 3 ]

3 голосов
/ 06 апреля 2010

Это случай для manage.py команды, периодически вызываемой из cron. Официальный документ о создании этих команд. Здесь немного более полезно.

Если вы хотите что-то более простое, тогда django-command-extensions содержит команды для управления заданиями django .

2 голосов
/ 09 ноября 2010

если вам нужно больше, то только эту одну асинхронную работу можно посмотреть на сельдерей .

1 голос
/ 06 апреля 2010

с использованием Django-cron намного проще и проще

РЕДАКТИРОВАТЬ: Добавлен совет

from django_cron import cronScheduler, Job
class sendMail(Job):
       # period run every 300 seconds (5 minutes)
        run_every = 300

        def job(self):
                # This will be executed every 5 minutes
                datatuple = check_subscription_finishing()
                send_mass_mail(datatuple)
//and just register it             
cronScheduler.register(sendMail)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...