|
@@ -0,0 +1,390 @@
|
|
|
|
|
+import os
|
|
|
|
|
+import django
|
|
|
|
|
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'bigdataAPI.settings')
|
|
|
|
|
+django.setup()
|
|
|
|
|
+
|
|
|
|
|
+import pymysql
|
|
|
|
|
+import pymongo
|
|
|
|
|
+import ast
|
|
|
|
|
+import datetime
|
|
|
|
|
+from concurrent.futures import ThreadPoolExecutor, wait, ALL_COMPLETED
|
|
|
|
|
+
|
|
|
|
|
+from django.conf import settings
|
|
|
|
|
+from apps.IOTCard.models import PlatSimInfo
|
|
|
|
|
+
|
|
|
|
|
+from utils.utils import GetSIMInfo, get_equip_list
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+class SIMUpdate(object):
|
|
|
|
|
+ def __init__(self,deviceId,iccid,device_type,platform) -> None:
|
|
|
|
|
+ self.deviceId = deviceId
|
|
|
|
|
+ self.iccid = iccid
|
|
|
|
|
+ self.device_type = device_type
|
|
|
|
|
+ self.platform = platform
|
|
|
|
|
+
|
|
|
|
|
+ def zhuban_sim(self):
|
|
|
|
|
+ """更新主板卡,即设备读取卡"""
|
|
|
|
|
+ if self.sim_verify() == False:
|
|
|
|
|
+ return
|
|
|
|
|
+ self.__update(input_type=1)
|
|
|
|
|
+
|
|
|
|
|
+ def photo_sim(self):
|
|
|
|
|
+ """更新图片卡,即人为录入卡"""
|
|
|
|
|
+ if self.sim_verify() == False:
|
|
|
|
|
+ return
|
|
|
|
|
+ self.__update(input_type=2)
|
|
|
|
|
+
|
|
|
|
|
+ def sim_verify(self):
|
|
|
|
|
+ """卡号校验"""
|
|
|
|
|
+ try:
|
|
|
|
|
+ card_value = int(self.iccid)
|
|
|
|
|
+ except:
|
|
|
|
|
+ card_value = 1
|
|
|
|
|
+ if self.iccid and self.iccid.startswith("12345") == False and (len(self.iccid) > 18 and len(self.iccid) <= 20) and card_value != 0:
|
|
|
|
|
+ return True
|
|
|
|
|
+ else:
|
|
|
|
|
+ return False
|
|
|
|
|
+
|
|
|
|
|
+ def __update(self,input_type):
|
|
|
|
|
+ sim_operators,account_status,active_date,data_plan,data_usage,data_balance,expiry_date = GetSIMInfo(self.iccid).get_sim_info()
|
|
|
|
|
+ sim_query = PlatSimInfo.objects.filter(deviceId=self.deviceId,input_type=input_type)
|
|
|
|
|
+ if sim_query:
|
|
|
|
|
+ sim_obj = sim_query[0]
|
|
|
|
|
+ sim_obj.simId = self.iccid
|
|
|
|
|
+ sim_obj.sim_operators = sim_operators
|
|
|
|
|
+ sim_obj.platform = self.platform
|
|
|
|
|
+ sim_obj.account_status = account_status
|
|
|
|
|
+ sim_obj.active_date = active_date
|
|
|
|
|
+ sim_obj.data_plan = data_plan
|
|
|
|
|
+ sim_obj.data_usage = data_usage
|
|
|
|
|
+ sim_obj.data_balance = data_balance
|
|
|
|
|
+ sim_obj.expiry_date = expiry_date
|
|
|
|
|
+ sim_obj.upl_time = datetime.datetime.now()
|
|
|
|
|
+ sim_obj.save()
|
|
|
|
|
+ else:
|
|
|
|
|
+ PlatSimInfo.objects.create(
|
|
|
|
|
+ simId = self.iccid,
|
|
|
|
|
+ sim_operators = sim_operators,
|
|
|
|
|
+ input_type = input_type,
|
|
|
|
|
+ deviceId = self.deviceId,
|
|
|
|
|
+ device_type = self.device_type,
|
|
|
|
|
+ platform = self.platform,
|
|
|
|
|
+ account_status = account_status,
|
|
|
|
|
+ active_date = active_date,
|
|
|
|
|
+ data_plan = data_plan,
|
|
|
|
|
+ data_usage = data_usage,
|
|
|
|
|
+ data_balance = data_balance,
|
|
|
|
|
+ expiry_date = expiry_date
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+class SQ_SIMUpdate(object):
|
|
|
|
|
+ def __init__(self) -> None:
|
|
|
|
|
+ self.sq_config = {
|
|
|
|
|
+ 'host': '172.16.220.3',
|
|
|
|
|
+ 'port': 3306,
|
|
|
|
|
+ 'user': 'yfwlw',
|
|
|
|
|
+ 'password': 'sql_yfkj_6019',
|
|
|
|
|
+ 'db': 'yfwlw',
|
|
|
|
|
+ 'charset': 'utf8mb4',
|
|
|
|
|
+ 'cursorclass': pymysql.cursors.DictCursor,
|
|
|
|
|
+ }
|
|
|
|
|
+ self.connection = pymysql.connect(**self.sq_config)
|
|
|
|
|
+ self.cursor = self.connection.cursor()
|
|
|
|
|
+
|
|
|
|
|
+ def sql_ping(self):
|
|
|
|
|
+ try:
|
|
|
|
|
+ self.connection.ping()
|
|
|
|
|
+ except:
|
|
|
|
|
+ self.connection = pymysql.connect(**self.sq_config)
|
|
|
|
|
+ self.cursor = self.connection.cursor()
|
|
|
|
|
+
|
|
|
|
|
+ def scd_sim(self):
|
|
|
|
|
+ self.sql_ping()
|
|
|
|
|
+ self.cursor.execute("SELECT equip_id_id,scd_status FROM AppInfoManage_scdstatus")
|
|
|
|
|
+ scd_cursor = self.cursor.fetchall()
|
|
|
|
|
+ for i in scd_cursor:
|
|
|
|
|
+ device_id = i["equip_id_id"]
|
|
|
|
|
+ scd_status = i["scd_status"]
|
|
|
|
|
+ equip_status = ast.literal_eval(scd_status)
|
|
|
|
|
+ iccid = equip_status.get("iccid","")
|
|
|
|
|
+ device_info = get_equip_list(d_id=device_id, isfullId=1)
|
|
|
|
|
+ if device_info and device_info[0]["plat"]=="四情平台":
|
|
|
|
|
+ SIMUpdate(deviceId=device_id,iccid=iccid,device_type="杀虫灯",platform=1).zhuban_sim()
|
|
|
|
|
+
|
|
|
|
|
+ def cbd_sim(self):
|
|
|
|
|
+ self.sql_ping()
|
|
|
|
|
+ self.cursor.execute("SELECT equip_id_id,cbd_status,simid FROM AppInfoManage_cbdstatus;")
|
|
|
|
|
+ cbd_cursor = self.cursor.fetchall()
|
|
|
|
|
+ for i in cbd_cursor:
|
|
|
|
|
+ device_id = i["equip_id_id"]
|
|
|
|
|
+ cbd_status = i["cbd_status"]
|
|
|
|
|
+ photo_iccid = i["simid"]
|
|
|
|
|
+ equip_status = ast.literal_eval(cbd_status)
|
|
|
|
|
+ zhuban_iccid = equip_status.get("iccid","")
|
|
|
|
|
+ device_info = get_equip_list(d_id=device_id, isfullId=1)
|
|
|
|
|
+ if device_info and device_info[0]["plat"]=="四情平台":
|
|
|
|
|
+ SIMUpdate(deviceId=device_id,iccid=zhuban_iccid,device_type="测报灯",platform=1).zhuban_sim()
|
|
|
|
|
+ if photo_iccid and photo_iccid != zhuban_iccid:
|
|
|
|
|
+ SIMUpdate(deviceId=device_id,iccid=photo_iccid,device_type="测报灯",platform=1).photo_sim()
|
|
|
|
|
+
|
|
|
|
|
+ def xycb_sim(self):
|
|
|
|
|
+ self.sql_ping()
|
|
|
|
|
+ self.cursor.execute("SELECT equip_id_id,ybq_status FROM AppInfoManage_ybqstatus;")
|
|
|
|
|
+ xycb_cursor = self.cursor.fetchall()
|
|
|
|
|
+ for i in xycb_cursor:
|
|
|
|
|
+ device_id = i["equip_id_id"]
|
|
|
|
|
+ xycb_status = i["ybq_status"]
|
|
|
|
|
+ equip_status = ast.literal_eval(xycb_status)
|
|
|
|
|
+ iccid = equip_status.get("iccid","")
|
|
|
|
|
+ device_info = get_equip_list(d_id=device_id, isfullId=1)
|
|
|
|
|
+ if device_info and device_info[0]["plat"]=="四情平台":
|
|
|
|
|
+ SIMUpdate(deviceId=device_id,iccid=iccid,device_type="性诱测报",platform=1).zhuban_sim()
|
|
|
|
|
+
|
|
|
|
|
+ def qxz_sim(self):
|
|
|
|
|
+ self.sql_ping()
|
|
|
|
|
+ self.cursor.execute("SELECT equip_id_id,iccid FROM AppInfoManage_qxz_base_info;")
|
|
|
|
|
+ qxz_cursor = self.cursor.fetchall()
|
|
|
|
|
+ for i in qxz_cursor:
|
|
|
|
|
+ device_id = i["equip_id_id"]
|
|
|
|
|
+ iccid = i["iccid"]
|
|
|
|
|
+ device_info = get_equip_list(d_id=device_id, isfullId=1)
|
|
|
|
|
+ if device_info and device_info[0]["plat"]=="四情平台":
|
|
|
|
|
+ SIMUpdate(deviceId=device_id,iccid=iccid,device_type="气象站",platform=1).zhuban_sim()
|
|
|
|
|
+
|
|
|
|
|
+ def bzy_sim(self):
|
|
|
|
|
+ self.sql_ping()
|
|
|
|
|
+ self.cursor.execute("SELECT equip_id_id,bzy_status,simid FROM AppInfoManage_bzystatus;")
|
|
|
|
|
+ bzy_cursor = self.cursor.fetchall()
|
|
|
|
|
+ for i in bzy_cursor:
|
|
|
|
|
+ device_id = i["equip_id_id"]
|
|
|
|
|
+ bzy_status = i["bzy_status"]
|
|
|
|
|
+ photo_iccid = i["simid"]
|
|
|
|
|
+ equip_status = ast.literal_eval(bzy_status)
|
|
|
|
|
+ zhuban_iccid = equip_status.get("iccid","")
|
|
|
|
|
+ device_info = get_equip_list(d_id=device_id, isfullId=1)
|
|
|
|
|
+ if device_info and device_info[0]["plat"]=="四情平台":
|
|
|
|
|
+ SIMUpdate(deviceId=device_id,iccid=zhuban_iccid,device_type="孢子仪",platform=1).zhuban_sim()
|
|
|
|
|
+ if photo_iccid and photo_iccid != zhuban_iccid:
|
|
|
|
|
+ SIMUpdate(deviceId=device_id,iccid=photo_iccid,device_type="孢子仪",platform=1).photo_sim()
|
|
|
|
|
+
|
|
|
|
|
+ def run(self):
|
|
|
|
|
+ self.scd_sim()
|
|
|
|
|
+ print("四情杀虫灯更新完毕--%s"%(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
|
|
|
|
|
+ self.cbd_sim()
|
|
|
|
|
+ print("四情测报灯更新完毕--%s"%(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
|
|
|
|
|
+ self.xycb_sim()
|
|
|
|
|
+ print("四情性诱测报更新完毕--%s"%(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
|
|
|
|
|
+ self.qxz_sim()
|
|
|
|
|
+ print("四情气象站更新完毕--%s"%(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
|
|
|
|
|
+ self.bzy_sim()
|
|
|
|
|
+ print("四情孢子仪更新完毕--%s"%(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
|
|
|
|
|
+ self.cursor.close()
|
|
|
|
|
+ self.connection.close()
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+class BD_SIMUpdate(object):
|
|
|
|
|
+ def __init__(self) -> None:
|
|
|
|
|
+ config = settings.CONFIG["bigdatamongo"]
|
|
|
|
|
+ self.host, self.port = config['host'], config['port']
|
|
|
|
|
+ self.user, self.password = config['user'], config['pwd']
|
|
|
|
|
+ self.client = pymongo.MongoClient(host=self.host, port=self.port, username=self.user, password=self.password)
|
|
|
|
|
+ self.db = self.client.smartfarming
|
|
|
|
|
+ self.device_collection = self.db.sa_device
|
|
|
|
|
+ self.scd_collection = self.db.sa_device_scd_data
|
|
|
|
|
+ self.cbd_collection = self.db.sa_device_cbd_data
|
|
|
|
|
+ self.xycb_collection = self.db.sa_device_xycb_data
|
|
|
|
|
+ self.qxz_collection = self.db.sa_qxz_base_info
|
|
|
|
|
+ self.bzy_collection = self.db.sa_device_bzy_data
|
|
|
|
|
+
|
|
|
|
|
+ def mongo_ping(self):
|
|
|
|
|
+ try:
|
|
|
|
|
+ self.client.admin.command('ping')
|
|
|
|
|
+ except:
|
|
|
|
|
+ self.client = pymongo.MongoClient(host=self.host, port=self.port, username=self.user, password=self.password)
|
|
|
|
|
+ self.db = self.client.smartfarming
|
|
|
|
|
+ self.device_collection = self.db.sa_device
|
|
|
|
|
+ self.scd_collection = self.db.sa_device_scd_data
|
|
|
|
|
+ self.cbd_collection = self.db.sa_device_cbd_data
|
|
|
|
|
+ self.xycb_collection = self.db.sa_device_xycb_data
|
|
|
|
|
+ self.qxz_collection = self.db.sa_qxz_base_info
|
|
|
|
|
+ self.bzy_collection = self.db.sa_device_bzy_data
|
|
|
|
|
+
|
|
|
|
|
+ def device_list(self, type_id):
|
|
|
|
|
+ device_list_cursor = self.device_collection.find(
|
|
|
|
|
+ filter={
|
|
|
|
|
+ "device_type_id": type_id
|
|
|
|
|
+ },
|
|
|
|
|
+ projection={
|
|
|
|
|
+ "_id": False,
|
|
|
|
|
+ "d_id": "$id",
|
|
|
|
|
+ "device_id": "$device_id",
|
|
|
|
|
+ "simid": "$simid"
|
|
|
|
|
+ }
|
|
|
|
|
+ )
|
|
|
|
|
+ if not device_list_cursor:
|
|
|
|
|
+ device_list_cursor = []
|
|
|
|
|
+ return device_list_cursor
|
|
|
|
|
+
|
|
|
|
|
+ def scd_sim(self):
|
|
|
|
|
+ self.mongo_ping()
|
|
|
|
|
+ scd_list = self.device_list(type_id=2)
|
|
|
|
|
+ for i in scd_list:
|
|
|
|
|
+ d_id = i["d_id"]
|
|
|
|
|
+ device_id = i["device_id"]
|
|
|
|
|
+ device_info = get_equip_list(d_id=device_id, isfullId=1)
|
|
|
|
|
+ if device_info and device_info[0]["plat"]=="大数据平台":
|
|
|
|
|
+ scd_data_cursor = self.scd_collection.find_one(
|
|
|
|
|
+ filter={
|
|
|
|
|
+ "device_id": d_id
|
|
|
|
|
+ },
|
|
|
|
|
+ projection={
|
|
|
|
|
+ "_id": False,
|
|
|
|
|
+ "device_data": "$device_data"
|
|
|
|
|
+ },
|
|
|
|
|
+ sort=[
|
|
|
|
|
+ ('_id', pymongo.DESCENDING)
|
|
|
|
|
+ ]
|
|
|
|
|
+ )
|
|
|
|
|
+ if scd_data_cursor:
|
|
|
|
|
+ device_data = ast.literal_eval(scd_data_cursor["device_data"])
|
|
|
|
|
+ iccid = device_data.get("iccid","")
|
|
|
|
|
+ SIMUpdate(deviceId=device_id,iccid=iccid,device_type="杀虫灯",platform=2).zhuban_sim()
|
|
|
|
|
+
|
|
|
|
|
+ def cbd_sim(self):
|
|
|
|
|
+ self.mongo_ping()
|
|
|
|
|
+ cbd_list = self.device_list(type_id=3)
|
|
|
|
|
+ for i in cbd_list:
|
|
|
|
|
+ d_id = i["d_id"]
|
|
|
|
|
+ device_id = i["device_id"]
|
|
|
|
|
+ photo_iccid = i["simid"]
|
|
|
|
|
+ device_info = get_equip_list(d_id=device_id, isfullId=1)
|
|
|
|
|
+ if device_info and device_info[0]["plat"]=="大数据平台":
|
|
|
|
|
+ cbd_data_cursor = self.cbd_collection.find_one(
|
|
|
|
|
+ filter={
|
|
|
|
|
+ "device_id": d_id
|
|
|
|
|
+ },
|
|
|
|
|
+ projection={
|
|
|
|
|
+ "_id": False,
|
|
|
|
|
+ "device_data": "$device_data"
|
|
|
|
|
+ },
|
|
|
|
|
+ sort=[
|
|
|
|
|
+ ('_id', pymongo.DESCENDING)
|
|
|
|
|
+ ]
|
|
|
|
|
+ )
|
|
|
|
|
+ if cbd_data_cursor:
|
|
|
|
|
+ device_data = ast.literal_eval(cbd_data_cursor["device_data"])
|
|
|
|
|
+ zhuban_iccid = device_data.get("iccid","")
|
|
|
|
|
+ SIMUpdate(deviceId=device_id,iccid=zhuban_iccid,device_type="测报灯",platform=2).zhuban_sim()
|
|
|
|
|
+ if photo_iccid and photo_iccid != zhuban_iccid:
|
|
|
|
|
+ SIMUpdate(deviceId=device_id,iccid=photo_iccid,device_type="测报灯",platform=2).photo_sim()
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ cbd_cursor = self.cursor.fetchall()
|
|
|
|
|
+ for i in cbd_cursor:
|
|
|
|
|
+ device_id = i["equip_id_id"]
|
|
|
|
|
+ cbd_status = i["cbd_status"]
|
|
|
|
|
+ photo_iccid = i["simid"]
|
|
|
|
|
+ equip_status = ast.literal_eval(cbd_status)
|
|
|
|
|
+ zhuban_iccid = equip_status.get("iccid","")
|
|
|
|
|
+ device_info = get_equip_list(d_id=device_id, isfullId=1)
|
|
|
|
|
+ if device_info and device_info[0]["plat"]=="四情平台":
|
|
|
|
|
+ SIMUpdate(deviceId=device_id,iccid=zhuban_iccid,device_type="测报灯",platform=1).zhuban_sim()
|
|
|
|
|
+ SIMUpdate(deviceId=device_id,iccid=photo_iccid,device_type="测报灯",platform=1).photo_sim()
|
|
|
|
|
+
|
|
|
|
|
+ def xycb_sim(self):
|
|
|
|
|
+ self.mongo_ping()
|
|
|
|
|
+ xycb_list = self.device_list(type_id=4)
|
|
|
|
|
+ for i in xycb_list:
|
|
|
|
|
+ d_id = i["d_id"]
|
|
|
|
|
+ device_id = i["device_id"]
|
|
|
|
|
+ device_info = get_equip_list(d_id=device_id, isfullId=1)
|
|
|
|
|
+ if device_info and device_info[0]["plat"]=="大数据平台":
|
|
|
|
|
+ xycb_data_cursor = self.xycb_collection.find_one(
|
|
|
|
|
+ filter={
|
|
|
|
|
+ "device_id": d_id
|
|
|
|
|
+ },
|
|
|
|
|
+ projection={
|
|
|
|
|
+ "_id": False,
|
|
|
|
|
+ "device_data": "$device_data"
|
|
|
|
|
+ },
|
|
|
|
|
+ sort=[
|
|
|
|
|
+ ('_id', pymongo.DESCENDING)
|
|
|
|
|
+ ]
|
|
|
|
|
+ )
|
|
|
|
|
+ if xycb_data_cursor:
|
|
|
|
|
+ device_data = ast.literal_eval(xycb_data_cursor["device_data"])
|
|
|
|
|
+ iccid = device_data.get("iccid","")
|
|
|
|
|
+ SIMUpdate(deviceId=device_id,iccid=iccid,device_type="性诱测报",platform=2).zhuban_sim()
|
|
|
|
|
+
|
|
|
|
|
+ def qxz_sim(self):
|
|
|
|
|
+ self.mongo_ping()
|
|
|
|
|
+ qxz_list_cursor = self.qxz_collection.find(
|
|
|
|
|
+ filter={},
|
|
|
|
|
+ projection={
|
|
|
|
|
+ "_id": False,
|
|
|
|
|
+ "device_id": "$device_id",
|
|
|
|
|
+ "iccid": "$iccid"
|
|
|
|
|
+ },
|
|
|
|
|
+ )
|
|
|
|
|
+ if qxz_list_cursor:
|
|
|
|
|
+ for i in qxz_list_cursor:
|
|
|
|
|
+ device_id = i["device_id"]
|
|
|
|
|
+ iccid = i["iccid"]
|
|
|
|
|
+ device_info = get_equip_list(d_id=device_id, isfullId=1)
|
|
|
|
|
+ if device_info and device_info[0]["plat"]=="大数据平台":
|
|
|
|
|
+ SIMUpdate(deviceId=device_id,iccid=iccid,device_type="气象站",platform=2).zhuban_sim()
|
|
|
|
|
+
|
|
|
|
|
+ def bzy_sim(self):
|
|
|
|
|
+ self.mongo_ping()
|
|
|
|
|
+ bzy_list = self.device_list(type_id=7)
|
|
|
|
|
+ for i in bzy_list:
|
|
|
|
|
+ d_id = i["d_id"]
|
|
|
|
|
+ device_id = i["device_id"]
|
|
|
|
|
+ photo_iccid = i["simid"]
|
|
|
|
|
+ device_info = get_equip_list(d_id=device_id, isfullId=1)
|
|
|
|
|
+ if device_info and device_info[0]["plat"]=="大数据平台":
|
|
|
|
|
+ bzy_data_cursor = self.bzy_collection.find_one(
|
|
|
|
|
+ filter={
|
|
|
|
|
+ "device_id": d_id
|
|
|
|
|
+ },
|
|
|
|
|
+ projection={
|
|
|
|
|
+ "_id": False,
|
|
|
|
|
+ "device_data": "$device_data"
|
|
|
|
|
+ },
|
|
|
|
|
+ sort=[
|
|
|
|
|
+ ('_id', pymongo.DESCENDING)
|
|
|
|
|
+ ]
|
|
|
|
|
+ )
|
|
|
|
|
+ if bzy_data_cursor:
|
|
|
|
|
+ device_data = ast.literal_eval(bzy_data_cursor["device_data"])
|
|
|
|
|
+ zhuban_iccid = device_data.get("iccid","")
|
|
|
|
|
+ SIMUpdate(deviceId=device_id,iccid=zhuban_iccid,device_type="孢子仪",platform=2).zhuban_sim()
|
|
|
|
|
+ if photo_iccid and photo_iccid != zhuban_iccid:
|
|
|
|
|
+ SIMUpdate(deviceId=device_id,iccid=photo_iccid,device_type="孢子仪",platform=2).photo_sim()
|
|
|
|
|
+
|
|
|
|
|
+ def run(self):
|
|
|
|
|
+ self.scd_sim()
|
|
|
|
|
+ print("大数据杀虫灯更新完毕--%s"%(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
|
|
|
|
|
+ self.cbd_sim()
|
|
|
|
|
+ print("大数据测报灯更新完毕--%s"%(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
|
|
|
|
|
+ self.xycb_sim()
|
|
|
|
|
+ print("大数据性诱测报更新完毕--%s"%(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
|
|
|
|
|
+ self.qxz_sim()
|
|
|
|
|
+ print("大数据气象站更新完毕--%s"%(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
|
|
|
|
|
+ self.bzy_sim()
|
|
|
|
|
+ print("大数据孢子仪更新完毕--%s"%(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
|
|
|
|
|
+
|
|
|
|
|
+if __name__ == "__main__":
|
|
|
|
|
+ print("SIM卡信息开始更新----------%s"%(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
|
|
|
|
|
+ print("")
|
|
|
|
|
+ Execution_POOL= ThreadPoolExecutor(max_workers=2)
|
|
|
|
|
+ all_tasks = [
|
|
|
|
|
+ Execution_POOL.submit(SQ_SIMUpdate().run()),
|
|
|
|
|
+ Execution_POOL.submit(BD_SIMUpdate().run())
|
|
|
|
|
+ ]
|
|
|
|
|
+ wait(all_tasks, return_when=ALL_COMPLETED)
|
|
|
|
|
+
|
|
|
|
|
+ print("SIM卡信息更新完毕----------%s"%(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
|
|
|
|
|
+ print("")
|
|
|
|
|
+ print("")
|