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

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

python 串行執行和并行執行實例

瀏覽:2日期:2022-07-27 08:25:38

我就廢話不多說了,大家還是直接看代碼吧!

#coding=utf-8 import threading import time import cx_Oracle from pprint import pprint import csv print time.asctime() table_name = 'dbtest.csv' f = open(table_name + '.csv', 'w') conn = cx_Oracle.connect(’tlcbuser/tlcbuser@20.5.101.31/tlyy’) cursor = conn.cursor() def query01(): tname = threading.current_thread() aa=10 # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row cursor.close() def query02(): tname = threading.current_thread() aa=20 # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row cursor.close() def query03(): tname = threading.current_thread() aa=30 # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row cursor.close() def query04(): tname = threading.current_thread() aa=40 # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row def query05(): tname = threading.current_thread() aa=50 # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row cursor.close() def query06(): tname = threading.current_thread() aa=60 # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row cursor.close() def query07(): tname = threading.current_thread() aa=70 # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() return row cursor.close() def query08(): tname = threading.current_thread() aa=80 # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row cursor.close() def query09(): tname = threading.current_thread() aa=90 # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row cursor.close() def query10(): tname = threading.current_thread() aa=100 # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row cursor.close() threads = [] t1 = threading.Thread(target=query01, name=’query01’) threads.append(t1) t2 = threading.Thread(target=query02, name=’query02’) threads.append(t2) t2 = threading.Thread(target=query03, name=’query03’) threads.append(t2) t2 = threading.Thread(target=query04, name=’query04’) threads.append(t2) t2 = threading.Thread(target=query05, name=’query05’) threads.append(t2) t2 = threading.Thread(target=query06, name=’query06’) threads.append(t2) t2 = threading.Thread(target=query07, name=’query07’) threads.append(t2) t2 = threading.Thread(target=query08, name=’query08’) threads.append(t2) t2 = threading.Thread(target=query09, name=’query09’) threads.append(t2) t2 = threading.Thread(target=query10, name=’query10’) threads.append(t2) if __name__ == ’__main__’: for t in threads: # t.setDaemon(True) t.start() # t.run() # t.start() # print ’3333333’ print threading.current_thread() # print t.is_alive() # print ’3333333’ t.join() print 'all over ' print time.asctime() C:Python27python.exe C:/Users/tlcb/PycharmProjects/untitled/a2.py Wed Mar 28 11:08:19 2018 <_MainThread(MainThread, started 18744)> [(10, ’10boobook10’, ’10aaaaaaaaaaaa10’, ’10bbbbbbbbbbbbbbbbb10’), (10, ’10sssssssss10’, ’tlcb’, ’tlcb’), (10, ’10boobook10’, ’10aaaaaaaaaaaa10’, ’10bbbbbbbbbbbbbbbbb10’)] <_MainThread(MainThread, started 18744)> [(20, ’20boobook20’, ’20aaaaaaaaaaaa20’, ’20bbbbbbbbbbbbbbbbb20’), (20, ’20boobook20’, ’20aaaaaaaaaaaa20’, ’20bbbbbbbbbbbbbbbbb20’), (20, ’20boobook20’, ’20aaaaaaaaaaaa20’, ’20bbbbbbbbbbbbbbbbb20’)] <_MainThread(MainThread, started 18744)> [(30, ’30boobook30’, ’30aaaaaaaaaaaa30’, ’30bbbbbbbbbbbbbbbbb30’), (30, ’30boobook30’, ’30aaaaaaaaaaaa30’, ’30bbbbbbbbbbbbbbbbb30’), (30, ’30boobook30’, ’30aaaaaaaaaaaa30’, ’30bbbbbbbbbbbbbbbbb30’)] <_MainThread(MainThread, started 18744)> [(40, ’40boobook40’, ’40aaaaaaaaaaaa40’, ’40bbbbbbbbbbbbbbbbb40’), (40, ’40boobook40’, ’40aaaaaaaaaaaa40’, ’40bbbbbbbbbbbbbbbbb40’), (40, ’40boobook40’, ’40aaaaaaaaaaaa40’, ’40bbbbbbbbbbbbbbbbb40’)] <_MainThread(MainThread, started 18744)> [(50, ’50boobook50’, ’50aaaaaaaaaaaa50’, ’50bbbbbbbbbbbbbbbbb50’), (50, ’50boobook50’, ’50aaaaaaaaaaaa50’, ’50bbbbbbbbbbbbbbbbb50’), (50, ’50boobook50’, ’50aaaaaaaaaaaa50’, ’50bbbbbbbbbbbbbbbbb50’)] <_MainThread(MainThread, started 18744)> [(60, ’60boobook60’, ’60aaaaaaaaaaaa60’, ’60bbbbbbbbbbbbbbbbb60’), (60, ’60boobook60’, ’60aaaaaaaaaaaa60’, ’60bbbbbbbbbbbbbbbbb60’), (60, ’60boobook60’, ’60aaaaaaaaaaaa60’, ’60bbbbbbbbbbbbbbbbb60’)] <_MainThread(MainThread, started 18744)> <_MainThread(MainThread, started 18744)> [(80, ’80boobook80’, ’80aaaaaaaaaaaa80’, ’80bbbbbbbbbbbbbbbbb80’), (80, ’80boobook80’, ’80aaaaaaaaaaaa80’, ’80bbbbbbbbbbbbbbbbb80’), (80, ’80boobook80’, ’80aaaaaaaaaaaa80’, ’80bbbbbbbbbbbbbbbbb80’)] <_MainThread(MainThread, started 18744)> [(90, ’90boobook90’, ’90aaaaaaaaaaaa90’, ’90bbbbbbbbbbbbbbbbb90’), (90, ’90boobook90’, ’90aaaaaaaaaaaa90’, ’90bbbbbbbbbbbbbbbbb90’), (90, ’90boobook90’, ’90aaaaaaaaaaaa90’, ’90bbbbbbbbbbbbbbbbb90’)] <_MainThread(MainThread, started 18744)> [(100, ’100boobook100’, ’100aaaaaaaaaaaa100’, ’100bbbbbbbbbbbbbbbbb100’), (100, ’100boobook100’, ’100aaaaaaaaaaaa100’, ’100bbbbbbbbbbbbbbbbb100’), (100, ’100boobook100’, ’100aaaaaaaaaaaa100’, ’100bbbbbbbbbbbbbbbbb100’)] all over Wed Mar 28 11:08:34 2018 Process finished with exit code 0 這個時候是串行 花費了15秒 多線程跑: #coding=utf-8 import threading import time import cx_Oracle from pprint import pprint import csv print time.asctime() table_name = 'dbtest.csv' f = open(table_name + '.csv', 'w') def query01(): tname = threading.current_thread() aa=10 conn = cx_Oracle.connect(’tlcbuser/tlcbuser@20.5.101.31/tlyy’) cursor = conn.cursor() # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() def query02(): tname = threading.current_thread() aa=20 conn = cx_Oracle.connect(’tlcbuser/tlcbuser@20.5.101.31/tlyy’) cursor = conn.cursor() # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() def query03(): tname = threading.current_thread() aa=30 conn = cx_Oracle.connect(’tlcbuser/tlcbuser@20.5.101.31/tlyy’) cursor = conn.cursor() # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() def query04(): conn = cx_Oracle.connect(’tlcbuser/tlcbuser@20.5.101.31/tlyy’) cursor = conn.cursor() tname = threading.current_thread() aa=40 # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() def query05(): conn = cx_Oracle.connect(’tlcbuser/tlcbuser@20.5.101.31/tlyy’) cursor = conn.cursor() tname = threading.current_thread() aa=50 # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() def query06(): conn = cx_Oracle.connect(’tlcbuser/tlcbuser@20.5.101.31/tlyy’) cursor = conn.cursor() tname = threading.current_thread() aa=60 # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() def query07(): conn = cx_Oracle.connect(’tlcbuser/tlcbuser@20.5.101.31/tlyy’) cursor = conn.cursor() tname = threading.current_thread() aa=70 # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() return row cursor.close() conn.close() def query08(): conn = cx_Oracle.connect(’tlcbuser/tlcbuser@20.5.101.31/tlyy’) cursor = conn.cursor() tname = threading.current_thread() aa=80 # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() def query09(): conn = cx_Oracle.connect(’tlcbuser/tlcbuser@20.5.101.31/tlyy’) cursor = conn.cursor() tname = threading.current_thread() aa=90 # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() def query10(): conn = cx_Oracle.connect(’tlcbuser/tlcbuser@20.5.101.31/tlyy’) cursor = conn.cursor() tname = threading.current_thread() aa=100 # cursor.execute('SELECT * FROM TEST100 WHERE ID = %s', [aa]) cursor.prepare('''SELECT * FROM TEST100 WHERE ID=:id''') cursor.execute(None,{’id’:aa}) row = cursor.fetchall() print row return row cursor.close() conn.close() threads = [] t1 = threading.Thread(target=query01, name=’query01’) threads.append(t1) t2 = threading.Thread(target=query02, name=’query02’) threads.append(t2) t2 = threading.Thread(target=query03, name=’query03’) threads.append(t2) t2 = threading.Thread(target=query04, name=’query04’) threads.append(t2) t2 = threading.Thread(target=query05, name=’query05’) threads.append(t2) t2 = threading.Thread(target=query06, name=’query06’) threads.append(t2) t2 = threading.Thread(target=query07, name=’query07’) threads.append(t2) t2 = threading.Thread(target=query08, name=’query08’) threads.append(t2) t2 = threading.Thread(target=query09, name=’query09’) threads.append(t2) t2 = threading.Thread(target=query10, name=’query10’) threads.append(t2) if __name__ == ’__main__’: for t in threads: # t.setDaemon(True) t.start() # t.run() # t.start() # print ’3333333’ print threading.current_thread() # print t.is_alive() # print ’3333333’ t.join() print 'all over ' print time.asctime() C:Python27python.exe C:/Users/tlcb/PycharmProjects/untitled/a2.py Wed Mar 28 11:12:47 2018 <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> <_MainThread(MainThread, started 22500)> [(40, ’40boobook40’, ’40aaaaaaaaaaaa40’, ’40bbbbbbbbbbbbbbbbb40’), (40, ’40boobook40’, ’40aaaaaaaaaaaa40’, ’40bbbbbbbbbbbbbbbbb40’), (40, ’40boobook40’, ’40aaaaaaaaaaaa40’, ’40bbbbbbbbbbbbbbbbb40’)] [(60, ’60boobook60’, ’60aaaaaaaaaaaa60’, ’60bbbbbbbbbbbbbbbbb60’), (60, ’60boobook60’, ’60aaaaaaaaaaaa60’, ’60bbbbbbbbbbbbbbbbb60’), (60, ’60boobook60’, ’60aaaaaaaaaaaa60’, ’60bbbbbbbbbbbbbbbbb60’)] [(80, ’80boobook80’, ’80aaaaaaaaaaaa80’, ’80bbbbbbbbbbbbbbbbb80’), (80, ’80boobook80’, ’80aaaaaaaaaaaa80’, ’80bbbbbbbbbbbbbbbbb80’), (80, ’80boobook80’, ’80aaaaaaaaaaaa80’, ’80bbbbbbbbbbbbbbbbb80’)] [(50, ’50boobook50’, ’50aaaaaaaaaaaa50’, ’50bbbbbbbbbbbbbbbbb50’), (50, ’50boobook50’, ’50aaaaaaaaaaaa50’, ’50bbbbbbbbbbbbbbbbb50’), (50, ’50boobook50’, ’50aaaaaaaaaaaa50’, ’50bbbbbbbbbbbbbbbbb50’)] [(10, ’10boobook10’, ’10aaaaaaaaaaaa10’, ’10bbbbbbbbbbbbbbbbb10’), (10, ’10sssssssss10’, ’tlcb’, ’tlcb’), (10, ’10boobook10’, ’10aaaaaaaaaaaa10’, ’10bbbbbbbbbbbbbbbbb10’)] [(20, ’20boobook20’, ’20aaaaaaaaaaaa20’, ’20bbbbbbbbbbbbbbbbb20’), (20, ’20boobook20’, ’20aaaaaaaaaaaa20’, ’20bbbbbbbbbbbbbbbbb20’), (20, ’20boobook20’, ’20aaaaaaaaaaaa20’, ’20bbbbbbbbbbbbbbbbb20’)] [(30, ’30boobook30’, ’30aaaaaaaaaaaa30’, ’30bbbbbbbbbbbbbbbbb30’), (30, ’30boobook30’, ’30aaaaaaaaaaaa30’, ’30bbbbbbbbbbbbbbbbb30’), (30, ’30boobook30’, ’30aaaaaaaaaaaa30’, ’30bbbbbbbbbbbbbbbbb30’)] [(100, ’100boobook100’, ’100aaaaaaaaaaaa100’, ’100bbbbbbbbbbbbbbbbb100’), (100, ’100boobook100’, ’100aaaaaaaaaaaa100’, ’100bbbbbbbbbbbbbbbbb100’), (100, ’100boobook100’, ’100aaaaaaaaaaaa100’, ’100bbbbbbbbbbbbbbbbb100’)] [(90, ’90boobook90’, ’90aaaaaaaaaaaa90’, ’90bbbbbbbbbbbbbbbbb90’), (90, ’90boobook90’, ’90aaaaaaaaaaaa90’, ’90bbbbbbbbbbbbbbbbb90’), (90, ’90boobook90’, ’90aaaaaaaaaaaa90’, ’90bbbbbbbbbbbbbbbbb90’)] all over Wed Mar 28 11:12:55 2018 Process finished with exit code 0 此時花了 8秒

補充知識:python logging定制logstash的json日志格式

最近一直在折騰日志的收集,現在算是收尾了。 寫一篇算python優化logstash的方案。

其實大家都知道logstash調用grok來解析日志的話,是要消耗cpu的成本的,畢竟是需要正則的匹配的。

根據logstash調優的方案,咱們可以預先生成json的格式。 我這邊基本是python的程序,怎么搞尼 ?

有兩種方法,第一種方法是生成json后,直接打入logstash的端口。 還有一種是生成json寫入文件,讓logstash做tail操作的時候,把一行的日志數據直接載入json就可以了。

python下的日志調試用得時logging,改成json也是很好改得。 另外不少老外已經考慮到這樣的需求,已經做了python logstash的模塊。

import loggingimport logstashimport syshost = ’localhost’test_logger = logging.getLogger(’python-logstash-logger’)test_logger.setLevel(logging.INFO)test_logger.addHandler(logstash.LogstashHandler(host, 5959, version=1))# test_logger.addHandler(logstash.TCPLogstashHandler(host, 5959, version=1))test_logger.error(’python-logstash: test logstash error message.’)test_logger.info(’python-logstash: test logstash info message.’)test_logger.warning(’python-logstash: test logstash warning message.’)# add extra field to logstash messageextra = { ’test_string’: ’python version: ’ + repr(sys.version_info), ’test_boolean’: True, ’test_dict’: {’a’: 1, ’b’: ’c’}, ’test_float’: 1.23, ’test_integer’: 123, ’test_list’: [1, 2, ’3’],}test_logger.info(’python-logstash: test extra fields’, extra=extra)

python-logstash自帶了amqp的方案

import loggingimport logstash# AMQP parametershost = ’localhost’username = ’guest’password= ’guest’exchange = ’logstash.py’# get a logger and set logging leveltest_logger = logging.getLogger(’python-logstash-logger’)test_logger.setLevel(logging.INFO)# add the handlertest_logger.addHandler(logstash.AMQPLogstashHandler(version=1, host=host, durable=True, username=username, password=password, exchange=exchange))# logtest_logger.error(’python-logstash: test logstash error message.’)test_logger.info(’python-logstash: test logstash info message.’)test_logger.warning(’python-logstash: test logstash warning message.’)try: 1/0except: test_logger.exception(’python-logstash: test logstash exception with stack trace’)

不管怎么說,最后生成的格式是這樣就可以了。

{ '@source'=>'unknown', '@type'=>'nginx', '@tags'=>[], '@fields'=>{ 'remote_addr'=>'192.168.0.1', 'remote_user'=>'-', 'body_bytes_sent'=>'13988', 'request_time'=>'0.122', 'status'=>'200', 'request'=>'GET /some/url HTTP/1.1', 'request_method'=>'GET', 'http_referrer'=>'http://www.example.org/some/url', 'http_user_agent'=>'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.79 Safari/537.1' }, '@timestamp'=>'2012-08-23T10:49:14+02:00'}

我這里簡單提一下,這個模塊用的不是很滿意,我在python下把日志打成了json字符串,我原本以為會像grok那樣,在Es里面,我的這條日志是個字段的結構,而不是這個日志都在message里面…. 我想大家應該明白了我的意思,這樣很是不容易在kibana的搜索…

在kibana搜索,我經常上 source:xxx AND level:INFO 結果正像上面描述的那樣,整條日志,都在@message里面。

以上這篇python 串行執行和并行執行實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 精益专家 - 设备管理软件|HSE管理系统|设备管理系统|EHS安全管理系统 | 土壤肥料养分速测仪_测土配方施肥仪_土壤养分检测仪-杭州鸣辉科技有限公司 | 【中联邦】增稠剂_增稠粉_水性增稠剂_涂料增稠剂_工业增稠剂生产厂家 | 十字轴_十字轴万向节_十字轴总成-南京万传机械有限公司 | 运动木地板厂家_体育木地板安装_篮球木地板选购_实木运动地板价格 | 「安徽双凯」自动售货机-无人售货机-成人用品-自动饮料食品零食售货机 | 济南网站建设_济南网站制作_济南网站设计_济南网站建设公司_富库网络旗下模易宝_模板建站 | 小型数控车床-数控车床厂家-双头数控车床 | 小型气象站_便携式自动气象站_校园气象站-竞道气象设备网 | 济南品牌包装设计公司_济南VI标志设计公司_山东锐尚文化传播 | 焊缝跟踪系统_激光位移传感器_激光焊缝跟踪传感器-创想智控 | 南昌旅行社_南昌国际旅行社_南昌国旅在线| 底部填充胶_电子封装胶_芯片封装胶_芯片底部填充胶厂家-东莞汉思新材料 | 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | ASA膜,ASA共挤料,篷布色母料-青岛未来化学有限公司 | 电梯乘运质量测试仪_电梯安全评估测试仪-武汉懿之刻 | 干法制粒机_智能干法制粒机_张家港市开创机械制造有限公司 | 高精度电阻回路测试仪-回路直流电阻测试仪-武汉特高压电力科技有限公司 | 电梯装饰-北京万达中意电梯装饰有限公司 | 造价工程师网,考试时间查询,报名入口信息-网站首页 | 脱硫搅拌器厂家-淄博友胜不锈钢搅拌器厂家 | 数年网路-免费在线工具您的在线工具箱-shuyear.com | 水性绝缘漆_凡立水_绝缘漆树脂_环保绝缘漆-深圳维特利环保材料有限公司 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 世界箱包品牌十大排名,女包小众轻奢品牌推荐200元左右,男包十大奢侈品牌排行榜双肩,学生拉杆箱什么品牌好质量好 - Gouwu3.com | 304不锈钢无缝管_不锈钢管厂家 - 隆达钢业集团有限公司 | 气胀轴|气涨轴|安全夹头|安全卡盘|伺服纠偏系统厂家-天机传动 | 医学模型生产厂家-显微手术模拟训练器-仿真手术模拟训练系统-北京医教科技 | 山东太阳能路灯厂家-庭院灯生产厂家-济南晟启灯饰有限公司 | 磨煤机配件-高铬辊套-高铬衬板-立磨辊套-盐山县宏润电力设备有限公司 | NM-02立式吸污机_ZHCS-02软轴刷_二合一吸刷软轴刷-厦门地坤科技有限公司 | 防爆大气采样器-防爆粉尘采样器-金属粉尘及其化合物采样器-首页|盐城银河科技有限公司 | PC阳光板-PC耐力板-阳光板雨棚-耐力板雨棚,厂家定制[优尼科板材] | 手表腕表维修保养鉴定售后服务中心网点 - 名表维修保养 | 台湾Apex减速机_APEX行星减速机_台湾精锐减速机厂家代理【现货】-杭州摩森机电 | 道康宁消泡剂-瓦克-大川进口消泡剂供应商 | 广西教师资格网-广西教师资格证考试网| PVC地板|PVC塑胶地板|PVC地板厂家|地板胶|防静电地板-无锡腾方装饰材料有限公司-咨询热线:4008-798-128 | 精密光学实验平台-红外粉末压片机模具-天津博君 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 杭州翻译公司_驾照翻译_专业人工翻译-杭州以琳翻译有限公司官网 组织研磨机-高通量组织研磨仪-实验室多样品组织研磨机-东方天净 |