소스 검색

云存报警表

peng 1 년 전
부모
커밋
2f77509325
2개의 변경된 파일28개의 추가작업 그리고 8개의 파일을 삭제
  1. 14 8
      Controller/CloudStorage.py
  2. 14 0
      Model/models.py

+ 14 - 8
Controller/CloudStorage.py

@@ -29,7 +29,7 @@ from Controller.PaymentCycle import Paypal
 from Model.models import Device_Info, Order_Model, Store_Meal, VodHlsModel, UID_Bucket, StsCrdModel, \
     ExperienceContextModel, Pay_Type, CDKcontextModel, Device_User, SysMsgModel, Unused_Uid_Meal, PromotionRuleModel, \
     VideoPlaybackTimeModel, CouponModel, VodBucketModel, VodHlsSummary, AiService, UidSetModel, UidPushModel, \
-    VodHlsTagType, ICloudStoreMeal, IcloudUseDetails, IcloudService
+    VodHlsTagType, ICloudStoreMeal, IcloudUseDetails, IcloudService, StsFrequency
 from Object.AWS.AmazonS3Util import AmazonS3Util
 from Object.AWS.S3Email import S3Email
 from Object.AliPayObject import AliPayObject
@@ -238,12 +238,14 @@ class CloudStorageView(View):
                                          discount_content=F('lang__discount_content'))
             if is_ios:
                 store_qs = store_qs.order_by('sort').values(
-                    "id", "title", "content", "price", "day", "currency", "bucket__storeDay", "new_title", "bucket__bucket",
+                    "id", "title", "content", "price", "day", "currency", "bucket__storeDay", "new_title",
+                    "bucket__bucket",
                     "bucket__area", "commodity_code", "commodity_type", "is_discounts", "virtual_price", "expire",
                     "discount_price", "discount_content", "symbol", "cycle_config_id", "product_id")
             else:
                 store_qs = store_qs.order_by('sort').values(
-                    "id", "title", "content", "price", "day", "currency", "bucket__storeDay", "new_title", "bucket__bucket",
+                    "id", "title", "content", "price", "day", "currency", "bucket__storeDay", "new_title",
+                    "bucket__bucket",
                     "bucket__area", "commodity_code", "commodity_type", "is_discounts", "virtual_price", "expire",
                     "discount_price", "discount_content", "symbol", "cycle_config_id")
 
@@ -412,16 +414,20 @@ class CloudStorageView(View):
                 res = {'code': 405, 'msg': 'Not purchased or expired!'}
                 return HttpResponse(json.dumps(res, ensure_ascii=False), content_type="application/json,charset=utf-8")
 
-            # 统计sts请求次数,一小时超过15次进行报警
+            # 统计sts请求次数,一小时超过20次进行报警
             redis_obj = RedisObject()
             key = 'sts_count_{}'.format(uid)
             sts_count = redis_obj.get_data(key)
             if sts_count:
                 sts_count = int(sts_count)
-                if sts_count % 15 == 0:
-                    # 发送邮件
-                    email_content = '{}服务器设备{}请求sts令牌频率过高'.format(CONFIG_INFO, uid)
-                    S3Email().faEmail(email_content, 'servers@ansjer.com')
+                if sts_count % 20 == 0:
+                    sts_frequency_qs = StsFrequency.objects.filter(uid=uid)
+                    if sts_frequency_qs.exists():
+                        sts_frequency_qs[0].frequency += 1
+                        sts_frequency_qs[0].updateTime = now_time
+                        sts_frequency_qs[0].save()
+                    else:
+                        StsFrequency.objects.create(uid=uid, frequency=1, addTime=now_time, updateTime=now_time)
                 sts_count += 1
                 ttl = redis_obj.get_ttl(key)
             else:

+ 14 - 0
Model/models.py

@@ -5083,3 +5083,17 @@ class DeviceWallpaper(models.Model):
         db_table = 'device_wallpaper'
         verbose_name = '设备壁纸'
         verbose_name_plural = verbose_name
+
+
+class StsFrequency(models.Model):
+    id = models.AutoField(primary_key=True, verbose_name=u'自增标记ID')
+    uid = models.CharField(max_length=20, verbose_name='设备UID', db_index=True)
+    frequency = models.IntegerField(verbose_name='频率', default=0)
+    addTime = models.IntegerField(verbose_name='添加时间', default=0)
+    updateTime = models.IntegerField(verbose_name='更新时间', default=0)
+
+    class Meta:
+        db_table = 'sts_frequency'
+        verbose_name = 'sts统计表'
+        verbose_name_plural = verbose_name
+        ordering = ('id',)