#coding=utf-8 import imp import os import sys import traceback import datetime import django from django.utils import timezone from django.db import transaction def agent_order_expire_remind(): orders = Order.objects.filter(status=Order.WAIT_PAY) for instance in orders: end_time = instance.create_time + datetime.timedelta(minutes=30) if datetime.datetime.now() >= end_time: instance.status = Order.CANCEL instance.save() def setup_django_env(path): sys.path.insert(0, path) f, filename, desc = imp.find_module('settings', [path]) imp.load_module('settings', f, filename, desc) os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings") sys.path.append(os.path.abspath(os.path.join(path, os.path.pardir))) if __name__ == '__main__': dirname, filename = os.path.split(os.path.abspath(sys.argv[0])) setup_django_env(dirname+'/../bookshop_admin') django.setup() from apps.order.models import Order try: print('start=======',timezone.now()) with transaction.atomic(): agent_order_expire_remind() print('end========', timezone.now()) except Exception as e: traceback.print_exc()