电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python定時從Mysql提取數據存入Redis的實現

瀏覽:41日期:2022-07-26 15:32:58

設計思路:

1.程序一旦run起來,python會把mysql中最近一段時間的數據全部提取出來

2.然后實例化redis類,將數據簡單解析后逐條傳入redis隊列

3.定時器設計每天凌晨12點開始跑

ps:redis是個內存數據庫,做后臺消息隊列的緩存時有很大的用處,有興趣的小伙伴可以去查看相關的文檔。

# -*- coding:utf-8 -*- import MySQLdbimport scheduleimport timeimport datetimeimport randomimport stringimport redis# get the data from mysqlclass FromSql(object): def __init__(self, conn): self.conn = conn def acquire(self): cursor = self.conn.cursor() try: sql = 'SELECT * FROM test WHERE TO_DAYS(NOW()) - TO_DAYS(t) <= 1' cursor.execute(sql) rs = cursor.fetchall() #print (rs) for eve in rs:print(’%s, %s, %s, %s’ % eve) copy_rs = rs cursor.close() return copy_rs except Exception as e: print('The error: %s' % e)class RedisQueue(object): def __init__(self, name, namespace=’queue’, **redis_kwargs): '''The default connection parameters are: host=’localhost’, port=6379, db=0''' self.__db= redis.Redis(**redis_kwargs) self.key = ’%s:%s’ %(namespace, name) def qsize(self): return self.__db.llen(self.key) def put(self, item): self.__db.rpush(self.key, item) def get(self, block=True, timeout=None): if block: item = self.__db.blpop(self.key, timeout=timeout) else: item = self.__db.lpop(self.key) if item: item = item[1] return item def get_nowait(self): return self.get(False)if __name__ == '__main__': # connect mysqldb conn_sql = MySQLdb.connect( host = ’127.0.0.1’, port = 3306, user = ’root’, passwd = ’’, db = ’test’, charset = ’utf8’ )def job_for_redis(): get_data = FromSql(conn_sql) data = get_data.acquire() q = RedisQueue(’test’,host=’localhost’, port=6379, db=0) for single_data in data: for meta_data in single_data:q.put(meta_data)print(meta_data) print('All data had been inserted.') ''' try: schedule.every().day.at('00:00').do(job_for_redis) except Exception as e: print(’Error: %s’% e)# finally:# conn.close() while True: schedule.run_pending() time.sleep(1)'''

補充知識:python定時獲取匯率存入數據庫

python定時任務:

我們可以使用 輕量級的第三方模塊schedule。首先先安裝:pip install schedule

定時任務的的小測試:

import scheduleimport time def job(): print('I’m working...') schedule.every(10).minutes.do(job) # 每隔10分鐘執(zhí)行一次任務schedule.every().hour.do(job) # 每隔一小時執(zhí)行一次任務schedule.every().day.at('10:30').do(job) # 每天10:30執(zhí)行一次任務schedule.every(5).to(10).days.do(job) # 每5-10天執(zhí)行一次任務schedule.every().monday.do(job) # 每周一的這個時候執(zhí)行一次任務schedule.every().wednesday.at('13:15').do(job) # 每周三13:15執(zhí)行一次任務 while True: schedule.run_pending()

獲取數據存入數據庫:(格式可能不太對,還有一些符號。自己修改一下即可)

import pymysqlimport scheduleimport timeimport requestsimport pandasfrom sqlalchemy import create_engine#獲取美元的所有外匯def job(): content = ’美元’ url = ’http://www.boc.cn/sourcedb/whpj/index.html’ #外匯數據地址 html = requests.get(url).content.decode(’utf-8’) index = html.index(’<td>’ + content + ’</td>’) str = html[index:index+300] result = re.findall(’<td>(.*?)</td>’,str) print('幣種:' + result[0]) print('現匯買入價:' + result[1]) print('現鈔買入價:' + result[2]) print('現匯賣出價:' + result[3]) print('現鈔賣出價:' + result[4]) print('中行結算價:' + result[5]) print('發(fā)布時間:' + result[6] + ’ ’ + result[7]) #本地地址 數據庫賬號 密碼 數據庫名 db = pymysql.connect(’localhost’,’root’,’root’,’pinyougoudb’) cursor = db.cursor() #sql語句 sql = 'update tb_money set huiBuy = %s,chaoBuy = %s,huiSale = %s,chaoSale = %s,centerResult= %s,publishTime = ’%s’ where typeId = ’%s’' % (result[1], result[2], result[3], result[4], result[5], result[6] + ’ ’ + result[7], result[0]) cursor.execute(sql) db.commit() print(’success’) # 查詢語句,將存入的數據查出來 # sqlalchemy 進行數據庫初始化 engine = create_engine(’mysql+pymysql://root:root@localhost:3306/pinyougoudb’) sql = ’’’select * from tb_money’’’ # pandas 進行數據庫讀寫 df = pandas.read_sql_query(sql,engine) print(df) db.commit()# 每隔幾分中刷新一次#schedule.every(0.1).minutes.do(job)#每天什么時候刷新schedule.every().day.at('09:29').do(job)schedule.every().day.at('09:30').do(job)#一直循環(huán) 知道滿足條件執(zhí)行while True: schedule.run_pending()

以上這篇Python定時從Mysql提取數據存入Redis的實現就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 超声波反应釜【百科】-以马内利仪器 | 拉卡拉POS机官网 - 官方直营POS机办理|在线免费领取 | 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | 粉末包装机,拆包机厂家,价格-上海强牛包装机械设备有限公司 | 冷热冲击试验箱_温度冲击试验箱价格_冷热冲击箱排名_林频厂家 | 成人纸尿裤,成人尿不湿,成人护理垫-山东康舜日用品有限公司 | 二维运动混料机,加热型混料机,干粉混料机-南京腾阳干燥设备厂 | 全自动包装机_灌装机生产厂家-迈驰包装设备有限公司 | led全彩屏-室内|学校|展厅|p3|户外|会议室|圆柱|p2.5LED显示屏-LED显示屏价格-LED互动地砖屏_蕙宇屏科技 | 钢制拖链生产厂家-全封闭钢制拖链-能源钢铝拖链-工程塑料拖链-河北汉洋机械制造有限公司 | 恒温恒湿箱(药品/保健品/食品/半导体/细菌)-兰贝石(北京)科技有限公司 | 超高频感应加热设备_高频感应电源厂家_CCD视觉检测设备_振动盘视觉检测设备_深圳雨滴科技-深圳市雨滴科技有限公司 | 阻垢剂,反渗透阻垢剂,缓蚀阻垢剂-山东普尼奥水处理科技有限公司 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 溶氧传感器-pH传感器|哈美顿(hamilton)| 超声骨密度仪-动脉硬化检测仪器-人体成分分析仪厂家/品牌/价格_南京科力悦 | TPE_TPE热塑性弹性体_TPE原料价格_TPE材料厂家-惠州市中塑王塑胶制品公司- 中塑王塑胶制品有限公司 | 对照品_中药对照品_标准品_对照药材_「格利普」高纯中药标准品厂家-成都格利普生物科技有限公司 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 节流截止放空阀-不锈钢阀门-气动|电动截止阀-鸿华阀门有限公司 | 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 解放卡车|出口|济南重汽|报价大全|山东三维商贸有限公司 | HV全空气系统_杭州暖通公司—杭州斯培尔冷暖设备有限公司 | 精密机械零件加工_CNC加工_精密加工_数控车床加工_精密机械加工_机械零部件加工厂 | 合肥风管加工厂-安徽螺旋/不锈钢风管-通风管道加工厂家-安徽风之范 | 珠宝展柜-玻璃精品展柜-首饰珠宝展示柜定制-鸿钛展柜厂家 | 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | 24位ADC|8位MCU-芯易德科技有限公司 | 天津暖气片厂家_钢制散热器_天津铜铝复合暖气片_维尼罗散热器 | CXB船用变压器-JCZ系列制动器-HH101船用铜质开关-上海永上船舶电器厂 | 高效节能电机_伺服主轴电机_铜转子电机_交流感应伺服电机_图片_型号_江苏智马科技有限公司 | 杜康白酒加盟_杜康酒代理_杜康酒招商加盟官网_杜康酒厂加盟总代理—杜康酒神全国运营中心 | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | 活性炭厂家-蜂窝活性炭-粉状/柱状/果壳/椰壳活性炭-大千净化-活性炭 | 机房监控|动环监控|动力环境监控系统方案产品定制厂家 - 迈世OMARA | 聚氨酯催化剂K15,延迟催化剂SA-1,叔胺延迟催化剂,DBU,二甲基哌嗪,催化剂TMR-2,-聚氨酯催化剂生产厂家 | 头条搜索极速版下载安装免费新版,头条搜索极速版邀请码怎么填写? - 欧远全 | 硫化罐_蒸汽硫化罐_大型硫化罐-山东鑫泰鑫智能装备有限公司 | 深圳展厅设计_企业展馆设计_展厅设计公司_数字展厅设计_深圳百艺堂 | 玻纤土工格栅_钢塑格栅_PP焊接_单双向塑料土工格栅_复合防裂布厂家_山东大庚工程材料科技有限公司 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛调查出轨取证公司_青岛婚外情取证-青岛探真调查事务所 | 膜结构车棚|上海膜结构车棚|上海车棚厂家|上海膜结构公司 | 利浦顿蒸汽发生器厂家-电蒸汽发生器/燃气蒸汽发生器_湖北利浦顿热能科技有限公司官网 |