想使用gevent、mysql、sqlalchemy實現python項目協程異步達到並發的效果


如題,但是查看了很多資料,都說python這邊的mysql不支持異步並發,只能阻塞進行,心塞30秒,暫時放棄這方面的研究

 

如果不操作數據庫的化,比如請求url、操作文件,還是可以用gevent來異步實現並發的:https://zhuanlan.zhihu.com/p/21465564

 

有資料說豆瓣通過修改基礎庫實現了,參考:https://github.com/douban/greenify,看了半天,不覺得適合自己的項目

 

python的最佳實踐是:http://san-yun.iteye.com/blog/1890784
1. gunicorn 同步模式+ 多開線程
2. gunicorn + gevent,前提把mysql的坑補上

 

有資料說:通過安裝MySQL-connector可以實現:http://blog.csdn.net/liukeforever/article/details/7013545

 

 

再看看廖雪峰的:https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00140262673295076f525af00734a8e924c5fc6ff5b6091000,里面講到,反正如此做了,不知道效果如何:

部署方式

在本地開發時,我們可以用Python自帶的WSGI服務器,但是,在服務器上,顯然不能用自帶的這個開發版服務器。可以選擇的WSGI服務器很多,我們選gunicorn:它用類似Nginx的Master-Worker模式,同時可以提供gevent的支持,不用修改代碼,就能獲得極高的性能。

  • gevent:把Python同步代碼變成異步協程的庫;

  • gunicorn --bind 127.0.0.1:9000 --workers 1 --worker-class gevent wsgiapp:application


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM