如何在Django中使用线程
我想检查用户的订阅日期,看看在某个时间段内哪些用户的订阅快到期了。然后给这些用户发邮件提醒,比如在到期前两天提醒他们。我觉得最好的办法是用线程和定时器来检查这些日期。但是我不知道该怎么调用这个功能。我不想单独写一个程序或者脚本,我想把这个过程结合到我的django代码里。我试着在settings.py文件里调用这个功能,但似乎这样做不太好。因为每次我导入settings的时候,它都会调用这个功能并创建一个线程。
3 个回答
2
如果你需要的不仅仅是这个异步任务,可以看看 celery。
3
这是关于如何使用 manage.py
命令的情况,这个命令是通过定时任务(cron)定期调用的。你可以查看官方文档,了解如何创建这些命令。还有这篇文章,提供了一些额外的帮助。
如果你想要更简单的方法,可以看看django-command-extensions,它提供了一些命令来管理django 任务。
1
使用 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)