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. 这是完成任务的正确方法吗?
  2. 我怎样才能得到准确的数据。
  3. 我把这段代码放在哪里,以便在启动服务器时删除数据。
  4. 是否可以在执行 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() 用于计划 运行

的作业