order_remind.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #coding=utf-8
  2. import imp
  3. import os
  4. import sys
  5. import traceback
  6. import datetime
  7. import django
  8. from django.utils import timezone
  9. from django.db import transaction
  10. def agent_order_expire_remind():
  11. orders = Order.objects.filter(status=Order.WAIT_PAY)
  12. for instance in orders:
  13. end_time = instance.create_time + datetime.timedelta(minutes=30)
  14. if datetime.datetime.now() >= end_time:
  15. instance.status = Order.CANCEL
  16. instance.save()
  17. def setup_django_env(path):
  18. sys.path.insert(0, path)
  19. f, filename, desc = imp.find_module('settings', [path])
  20. imp.load_module('settings', f, filename, desc)
  21. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
  22. sys.path.append(os.path.abspath(os.path.join(path, os.path.pardir)))
  23. if __name__ == '__main__':
  24. dirname, filename = os.path.split(os.path.abspath(sys.argv[0]))
  25. setup_django_env(dirname+'/../bookshop_admin')
  26. django.setup()
  27. from apps.order.models import Order
  28. try:
  29. print('start=======',timezone.now())
  30. with transaction.atomic():
  31. agent_order_expire_remind()
  32. print('end========', timezone.now())
  33. except Exception as e:
  34. traceback.print_exc()