如何安排工作(Django,Python)

时间:2018-11-01 16:41:53

标签: python django runtime schedule

我想创建一个可以滚动到全部10分钟的工作。 我找到了一个很好的例子here。问题是该程序在等待时间内冻结,我的其他URL被阻止。 在我之后是因为 而为True:

有没有解决这个问题的方法?

语音代码:

Mileage | VIN | Start Date | End Date |
0       | 123 | 6/1/18     | 6/30/18  |
0       | 123 | 7/1/18     | 7/31/18  |
0       | 123 | 8/1/18     | 8/31/18  |
0       | 123 | 9/1/18     | 9/30/18  |
0       | 123 | 10/1/18    | 10/31/18 |

*************************************************** ********************。

我找到了正确的方法。这是link: 为了使其正常工作,我删除了这一部分:

import schedule
import time

def job():
    print("I'm working...")

schedule.every(10).minutes.do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

这是有效的代码:

# time.sleep(20)
# print('Checkpoint **************************')
# time.sleep(30)
# print('Bye -----------------------')

谢谢大家,并感谢作者:巴黎Nakita Kejser Here

1 个答案:

答案 0 :(得分:2)

您可以将celery + celerybeat与Django一起使用以运行计划的任务。您可以将方法编写为celery任务,并在 settings.py 文件中添加一个条目,以使该任务每10分钟运行一次。该任务将在其线程上运行,因此不会阻止您的应用程序。

语音链接到芹菜http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html