Python计划在服务器启动时执行

2024-05-14 21:04:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要执行一项任务。 我想每隔30天删除一个表详细信息。 我希望在服务器启动时自动执行任务(在执行python manage.py runserver之后)

然后我试着 pip安装时间表

我的调度程序功能

def set_timeschedule():
   HeartBeatLog.objects.all().delete()

然后我不明白我调用了这个函数

所以我把它叫做url.py

if date.today().day == 28:
  schedule.every().day.at("16:36").do(set_timeschedule)

为测试增加的时间(我需要在30天内执行) 这里的HeartBeatLog是我的模态。我无法在manage.py或url.py中获取此信息

但它不起作用

  1. 这是完成任务的正确方法吗
  2. 我怎样才能得到准确的数据
  3. 我把这个代码放在那里,在启动服务器时删除数据
  4. 是否可以在执行1次后终止计划

Tags: pip数据py程序服务器urlmanage详细信息
1条回答
网友
1楼 · 发布于 2024-05-14 21:04:00

您可以将其设置为:

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

您需要为计划运行的作业运行_pending()

相关问题 更多 >

    热门问题