|
# -*- coding: utf-8 -*-
import logging
import os
from django_six import CompatibilityBaseCommand, close_old_connections
from integral.models import SaleclerkSubmitLogInfo
from utils.qiniucdn import upload_file_path
from utils.redis.connect import r
from utils.redis.rkeys import QINIU_UPLOAD_LIST
logger = logging.getLogger('console')
class Command(CompatibilityBaseCommand):
def handle(self, *args, **options):
logger.info('Upload image qiniu is dealing')
while True:
# r.rpushjson(QINIU_UPLOAD_LIST, {
# 'model': 'SaleclerkSubmitLogInfo',
# 'pk': 'pk',
# })
k, v = r.blpopjson(QINIU_UPLOAD_LIST, 60)
if not v:
continue
logger.info(v)
model, pk = v.get('model', ''), v.get('pk', '')
close_old_connections()
if model == 'SaleclerkSubmitLogInfo':
try:
ssli = SaleclerkSubmitLogInfo.objects.get(pk=pk)
except SaleclerkSubmitLogInfo.DoesNotExist:
continue
is_upload_qiniu = True
if ssli.image:
try:
if os.path.exists(ssli.image.path):
upload_file_path(ssli.image.path, key=ssli.image.name, bucket='tamron')
os.remove(ssli.image.path)
except Exception:
is_upload_qiniu = False
if ssli.code_image:
try:
if os.path.exists(ssli.code_image.path):
upload_file_path(ssli.code_image.path, key=ssli.code_image.name, bucket='tamron')
os.remove(ssli.code_image.path)
except Exception:
is_upload_qiniu = False
ssli.is_upload_qiniu = is_upload_qiniu
ssli.save()
close_old_connections()
|