添加功能调度时本地Django服务器无响应
Local Django server unresponsive when adding function scheduling
我正在尝试使用 Schedule 将函数安排到 运行 每天
图书馆。
然而,在将计划保存到我的代码后,我的本地 Django 服务器挂起并在系统检查期间变得无响应。只有当我删除计划代码时,系统检查通过并且服务器 运行s 没有问题。
我直接从文档中复制了示例,服务器没有返回任何错误,所以我不确定问题出在哪里..
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
语句。
通常人们会使用 celery
中的 periodic_tasks
,但这对您的需求来说可能有些矫枉过正。
我宁愿建议创建一个 command
这样你就可以 运行 python manage.py test_task
并且在 os 级别上添加一个 cron 作业将 运行 每 10 分钟执行一次此命令。
我正在尝试使用 Schedule 将函数安排到 运行 每天 图书馆。
然而,在将计划保存到我的代码后,我的本地 Django 服务器挂起并在系统检查期间变得无响应。只有当我删除计划代码时,系统检查通过并且服务器 运行s 没有问题。
我直接从文档中复制了示例,服务器没有返回任何错误,所以我不确定问题出在哪里..
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
语句。
通常人们会使用 celery
中的 periodic_tasks
,但这对您的需求来说可能有些矫枉过正。
我宁愿建议创建一个 command
这样你就可以 运行 python manage.py test_task
并且在 os 级别上添加一个 cron 作业将 运行 每 10 分钟执行一次此命令。