python如何通過twisted實現資料庫非同步插入,pythontwisted

來源:互聯網
上載者:User

python如何通過twisted實現資料庫非同步插入,pythontwisted

如何通過twisted實現資料庫非同步插入?

  1. 匯入adbapi

  2. 產生資料庫連接池

  3. 執行資料資料庫插入操作

  4. 列印錯誤資訊,並排錯

#!/usr/bin/python3 __author__ = 'beimenchuixue'__blog__ = 'http://www.cnblogs.com/2bjiujiu/' import pymysqlfrom twisted.enterprise import adbapifrom twisted.internet import reactor  def go_insert(cursor, sql):  # 對資料庫進行插入操作,並不需要commit,twisted會自動幫我commit  try:    for i in range(10):      data = str(i)      cursor.execute(sql, data)  except Exception as e:    print(e)  def handle_error(failure):  # 列印錯誤  if failure:    print(failure)  if __name__ == '__main__':  # 資料庫基本配置  db_settings = {    'host': 'localhost',    'db': 'jobole',    'user': 'root',    'password': 'passwort',    'charset': 'utf8',    'use_unicode': True  }  # sql語句模版  insert_sql = 'insert into test_1(text_1) value(%s)'     # 普通方法插入資料  # conn = pymysql.connect(**db_settings)  # cursor = conn.cursor()  # cursor.execute(insert_sql, '1')  # conn.commit()     try:    # 產生串連池    db_conn = adbapi.ConnectionPool('pymysql', **db_settings)    # 通過串連池執行具體的sql操作,返回一個對象    query = db_conn.runInteraction(go_insert, insert_sql)    # 對錯誤資訊進行提示處理    query.addCallbacks(handle_error)  except Exception as e:    print(e)     # 定時,給4秒時間讓twisted非同步架構完成資料庫插入非同步作業,沒有定時什麼都不會做  reactor.callLater(4, reactor.stop)  reactor.run()

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援幫客之家。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.