Python 计划 - 在服务器启动时执行
Python Schedule - Execute at the time of server starting
我需要执行一个任务。
我想每隔 30 天删除一个 table 详细信息。
我想在我们的服务器启动时自动执行任务(在执行 python manage.py runserver 之后)
然后我试了
pip 安装时间表
我的调度函数
def set_timeschedule():
HeartBeatLog.objects.all().delete()
然后我不明白我调用函数
所以我在 urls.py
中调用了这个
if date.today().day == 28:
schedule.every().day.at("16:36").do(set_timeschedule)
增加测试时间(我需要在 30 天间隔内执行它们)
这里 HeartBeatLog 是我的模态。我无法在 manage.py 或 urls.py
中得到这个
但它不起作用
- 这是完成任务的正确方法吗?
- 我怎样才能得到准确的数据。
- 我把这段代码放在哪里,以便在启动服务器时删除数据。
- 是否可以在执行 1 次后终止计划
您可以这样设置:
def set_timeschedule():
if date.today().day == 28:
HeartBeatLog.objects.all().delete()
schedule.every().day.at("16:36").do(set_timeschedule) # Sets up a job
while True:
schedule.run_pending() # Checks for active jobs and runs
sleep(900) # Sleep for 900s
您需要 run_pending() 用于计划 运行
的作业
我需要执行一个任务。 我想每隔 30 天删除一个 table 详细信息。 我想在我们的服务器启动时自动执行任务(在执行 python manage.py runserver 之后)
然后我试了 pip 安装时间表
我的调度函数
def set_timeschedule():
HeartBeatLog.objects.all().delete()
然后我不明白我调用函数
所以我在 urls.py
中调用了这个if date.today().day == 28:
schedule.every().day.at("16:36").do(set_timeschedule)
增加测试时间(我需要在 30 天间隔内执行它们) 这里 HeartBeatLog 是我的模态。我无法在 manage.py 或 urls.py
中得到这个但它不起作用
- 这是完成任务的正确方法吗?
- 我怎样才能得到准确的数据。
- 我把这段代码放在哪里,以便在启动服务器时删除数据。
- 是否可以在执行 1 次后终止计划
您可以这样设置:
def set_timeschedule():
if date.today().day == 28:
HeartBeatLog.objects.all().delete()
schedule.every().day.at("16:36").do(set_timeschedule) # Sets up a job
while True:
schedule.run_pending() # Checks for active jobs and runs
sleep(900) # Sleep for 900s
您需要 run_pending() 用于计划 运行
的作业