From df59e70e3ced1d0956749d89f0f88fa0a6a2d7f4 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期三, 16 九月 2020 04:05:59 +0800 Subject: [PATCH] 0312 兑换激活码改多线程 --- Tool/WebCenter/CouponCode/main.py | 4 ++-- Tool/WebCenter/CouponCode/webapp.py | 30 +++++++++++++++++++++++++++--- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/Tool/WebCenter/CouponCode/main.py b/Tool/WebCenter/CouponCode/main.py index 0e8b363..9ef132d 100644 --- a/Tool/WebCenter/CouponCode/main.py +++ b/Tool/WebCenter/CouponCode/main.py @@ -33,8 +33,8 @@ CenterPort = int(ReadConfig.ReadConfig(os.getcwd() + "\\..\\Coupon\\config.ini").GetValue("Coupon", "CodePort", 53003)) - # 此处不要用多线程,不然会导致同时间复用的情况,造成刷单 - run(host='0.0.0.0', port=CenterPort, app=webapp.myapp) + # 多线程 需防范频繁访问情况 + run(host='0.0.0.0', port=CenterPort, app=webapp.myapp, server='waitress') return if __name__ == '__main__': diff --git a/Tool/WebCenter/CouponCode/webapp.py b/Tool/WebCenter/CouponCode/webapp.py index eb88dcf..d60caf8 100644 --- a/Tool/WebCenter/CouponCode/webapp.py +++ b/Tool/WebCenter/CouponCode/webapp.py @@ -59,6 +59,15 @@ myapp = Bottle() +# 闃叉鐭椂闂村唴鐨勫娆℃棤鏁堣闂� accid锛歵ime +AccID_Cache_Dict = {} + +def CleanAccID(): + global AccID_Cache_Dict + + if len(AccID_Cache_Dict) < 100: + return + AccID_Cache_Dict = {} #/api/Coupon/index.php?couponBatchId=%s&agentName=%s" @@ -117,6 +126,7 @@ # http://center.xxx.com:53003/Coupon/CouponCode.php @myapp.route('/Coupon/CouponCode.php') def CouponCode(): + global AccID_Cache_Dict dataDict = request.GET for key, value in dataDict.items(): @@ -146,6 +156,20 @@ # 杞寲涓烘父鎴忚处鍙� accid = "%s@%s@s%s"%(accid.lower(), spID, sid) + + try: + CleanAccID() + #mylog.debug("AccID_Cache_Dict : %s"%str(AccID_Cache_Dict)) + if accid not in AccID_Cache_Dict: + AccID_Cache_Dict[accid] = int(time.time()) + elif time.time() - AccID_Cache_Dict[accid] < 2: + mylog.debug("==========bad: fast click %s"%accid) + return + + AccID_Cache_Dict[accid] = int(time.time()) + except: + pass + dbController = CouponDB.GetDBEventCon() if not dbController: @@ -385,9 +409,9 @@ post = {} post['pack'] = pack_data_dict; post['sign'] = sign; - result = urllib2.urlopen(gmurl, urllib.urlencode(post), 10) + result = urllib2.urlopen(gmurl, urllib.urlencode(post), 3) - content = result.read() + #content = result.read() result.close() # 鎴愬姛鎻愮ず @@ -408,7 +432,7 @@ post['sign'] = sign; urllib2.urlopen(gmurl, urllib.urlencode(post), 3) - return content + return 0 except Exception, e: mylog.debug("gm error %s"%e) return -- Gitblit v1.8.0