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, create_time__lt=three_hours_ago) # 创建一个循环语句 for file in files_to_delete: # 获取文件的绝对路径 file_path = os.getcwd() + file.file_path try: # 删除文件 os.remove(file_path) except OSError as e: print("Error: %s : %s" % (file_path, e.strerror)) # 删除数据库数据 file.delete()