浏览代码

add decorator - retry - for database connect

huangyifan 1 年之前
父节点
当前提交
cd48850a04
共有 1 个文件被更改,包括 11 次插入0 次删除
  1. 11 0
      sync_amz_data/public/sp_api_client.py

+ 11 - 0
sync_amz_data/public/sp_api_client.py

@@ -17,6 +17,8 @@ from dateutil.parser import parse
 import pymysql
 from typing import List, Literal
 from random import shuffle
+from retry import retry
+
 try:
     from ..settings import MYSQL_AUTH_CONF, MYSQL_DATA_CONF
 except:
@@ -31,18 +33,24 @@ class SpApiRequest:
         # self.timezone = self.shopInfo['time_zone']
         # self.profileid = '3006125408623189'
 
+    #
     @classmethod
+    @retry(tries=3, delay=5, backoff=2, )
     def mysql_connect_auth(cls): # AUTH
         conn = pymysql.connect(**MYSQL_AUTH_CONF)
 
         return conn
 
+
     @classmethod
+    @retry(tries=3, delay=5, backoff=2, )
     def mysql_connect_auth_lst(cls): # DATA
         conn = pymysql.connect(**MYSQL_DATA_CONF)
         return conn
 
+
     @classmethod
+    @retry(tries=3, delay=5, backoff=2, )
     def mysql_connect(cls): # local database
         conn = pymysql.connect(user="huangyifan",
                                password="123456",
@@ -51,7 +59,9 @@ class SpApiRequest:
                                port=3306)
         return conn
 
+
     @staticmethod
+    @retry(tries=3, delay=5, backoff=2, )
     def auth_info(): # get Auth-data from all of shops
         auth_conn = SpApiRequest.mysql_connect_auth()
         cursor = auth_conn.cursor()
@@ -63,6 +73,7 @@ class SpApiRequest:
 
 
     @classmethod
+    @retry(tries=3, delay=5, backoff=2, )
     def get_refreshtoken(cls): # accroding to differnt shop get diffrent refreshtoken
         df = cls.auth_info()
         refreshtoken_list = (df['refresh_token'].to_numpy().tolist())