123456789101112131415161718192021222324252627282930 |
- from celery import shared_task
- from .models import Files as Files_models
- from datetime import datetime, timedelta
- from django.utils import timezone
- import os
- @shared_task
- def add(x, y):
- return x + y
- # 每隔4小时,删除一份文件
- @shared_task
- def del_file():
- # 将当前时间转换为时区感知的时间
- now_aware = timezone.make_aware(datetime.now(), timezone.get_current_timezone())
- # 比当前时间早4小时的时间
- three_hours_ago = now_aware - timedelta(hours=4)
- # 找到不存在订单id,并且上传时间比当前时间早4小时的文件数据,将其删除
- files_to_delete = Files_models.objects.filter(order_id__isnull=True, user_id__isnull=True, create_time__lt=three_hours_ago)
- # 创建一个循环语句
- for file in files_to_delete:
- # 获取文件的绝对路径
- file_path = os.getcwd() + '/' + file.file_path.url
- try:
- # 删除文件
- os.remove(file_path)
- except OSError as e:
- print("Error: %s : %s" % (file_path, e.strerror))
- # 删除数据库数据
- file.delete()
|