如何解决添加功能调度时本地Django服务器无响应
我正在尝试使用 Schedule 安排每天运行的函数 图书馆。
然而,在将计划保存到我的代码后,我的本地 Django 服务器在系统检查期间挂起并变得无响应。只有当我删除计划代码时,系统检查才能通过并且服务器运行没有问题。
我直接从文档中复制了示例,服务器没有返回任何错误,所以我不确定问题是什么..
views.py
....
def test_task():
user = user.objects.get(pk=1)
user.task_complete = True
user.save()
schedule.every(10).minutes.do(test_task)
while True:
schedule.run_pending()
time.sleep(1)
....
chaudim@TD app_one % python3 manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
解决方法
Django 根据其设置加载(导入)文件。
当您将此 while
循环放入全局范围时,它会在导入时执行。它运行 while 循环,直到完成。它从未完成。如果您想亲眼看看这是否是根本原因,您可以在此处添加 print
语句。
通常人们使用 periodic_tasks
中的 celery
,但这对于您的需求来说可能有点过头了。
我宁愿建议创建一个 command
以便您可以运行 python manage.py test_task
,并且在操作系统级别只需添加一个 cron 作业,该作业将每 10 分钟运行一次此命令。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。