Django - 创建时间 每24小时后-24
可以使用Django的datetime.timedelta来实现每24小时减去1小时的功能。
首先,你需要安装django-celery,它是一个用于处理定时任务的扩展库。你可以使用以下命令安装它:
pip install django-celery
接下来,在你的Django项目的settings.py文件中,添加以下配置:
# settings.py
# 添加以下配置
CELERY_BROKER_URL = 'redis://localhost:6379/0' # Redis作为消息中间件
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' # Redis作为结果存储
CELERY_BEAT_SCHEDULE = {
'subtract_hourly': {
'task': 'yourapp.tasks.subtract_hourly',
'schedule': timedelta(hours=24), # 每24小时执行一次
},
}
然后,在你的Django项目的根目录下创建一个名为tasks.py的文件,并添加以下内容:
# tasks.py
from datetime import timedelta
from celery.task import periodic_task
from yourapp.models import YourModel
@periodic_task(run_every=timedelta(hours=24))
def subtract_hourly():
YourModel.objects.all().update(your_field=YourModel.your_field - timedelta(hours=24))
最后,运行以下命令启动Celery worker和beat:
celery -A yourproject worker --loglevel=info celery -A yourproject beat --loglevel=info
这样,每24小时,subtract_hourly任务将会执行一次,更新YourModel中的数据,将your_field字段减去24小时。

浙公网安备 33010602011771号