`
san_yun
  • 浏览: 2663223 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

mongoDB gevent

 
阅读更多

mongoDB是支持gevent的,详见:http://api.mongodb.org/python/current/examples/gevent.html

 

PyMongo supports Gevent . Simply call Gevent’s monkey.patch_all() before loading any other modules:

>>> # You must call patch_all() *before* importing any other modules
>>> from gevent import monkey; monkey.patch_all()
>>> from pymongo import MongoClient
>>> connection = MongoClient()
 

PyMongo’s Gevent support means that start_request() ensures the current greenlet (not merely the current thread) uses the same socket for all operations until end_request() is called. See the requests documentation for details on requests in PyMongo.

Using Gevent With Threads

If you need to use standard Python threads in the same process as Gevent and greenlets, run monkey.patch_socket() , rather than monkey.patch_all() , and create a MongoClient with use_greenlets=True . The MongoClient will use a special greenlet-aware connection pool.

>>> from gevent import monkey; monkey.patch_socket()
>>> from pymongo import MongoClient
>>> connection = MongoClient(use_greenlets=True)
 

An instance of MongoReplicaSetClient created with use_greenlets=True will also use a greenlet-aware pool. Additionally, it will use a background greenlet instead of a background thread to monitor the state of the replica set.

>>> from gevent import monkey; monkey.patch_socket()
>>> from pymongo.mongo_replica_set_client import MongoReplicaSetClient
>>> rsc = MongoReplicaSetClient(
...     'mongodb://localhost:27017,localhost:27018,localhost:27019',
...     replicaSet='repl0', use_greenlets=True)
 

Setting use_greenlets is unnecessary under normal circumstances; simply call patch_all to use Gevent with PyMongo.

分享到:
评论

相关推荐

    基于flask的企业级开发模板,集成了flask-socketio,mongodb等等.zip

    它使用Eventlet或Gevent作为后台工作线程,以支持大量并发连接。 **MongoDB** MongoDB是一个文档型的NoSQL数据库,以JSON格式的文档存储数据。它以其灵活性、高性能和可扩展性而著名。在企业级开发中,MongoDB常常...

    Python-MSpider一个简单容易使用的Spider使用gevent和js渲染器

    - **数据存储**:除了默认的文件存储,MSpider可以轻松连接到数据库,如MySQL、MongoDB,或者使用Elasticsearch进行实时数据分析。 - **反反爬策略**:通过设置User-Agent、Cookie,甚至使用动态IP代理池,应对网站...

    py-mongo-sync:MongoDB的基于Oplog的同步工具。 它用于将数据从一个副本集同步到另一个独立副本集强化群集

    py-mongo-sync 它可用于将数据从一个副本集同步到另一个MongoDB部署(独立,副本集或分片... Gevent 托姆 毫米3 pymongo 始终使用pymongo 3.5.1。 请参阅 3.6版增加了对MongoDB 3.6的支持,放弃了对CPython 3.3

    12.Gevent的猴子补丁.zip

    网络爬虫基础 网络爬虫的概述和原理 ...数据库的使用和操作(如MySQL、MongoDB等) 数据存储格式的选择和优化 实际案例分析 应用所学知识解决真实世界中的爬虫和IO问题 爬虫和IO项目开发流程与实践经验分享

    11.Gevent中的Greenlet.zip

    网络爬虫基础 网络爬虫的概述和原理 ...数据库的使用和操作(如MySQL、MongoDB等) 数据存储格式的选择和优化 实际案例分析 应用所学知识解决真实世界中的爬虫和IO问题 爬虫和IO项目开发流程与实践经验分享

    13.Gevent的协程池.zip

    网络爬虫基础 网络爬虫的概述和原理 ...数据库的使用和操作(如MySQL、MongoDB等) 数据存储格式的选择和优化 实际案例分析 应用所学知识解决真实世界中的爬虫和IO问题 爬虫和IO项目开发流程与实践经验分享

    mongo-c-driver-1.13.0.tar.gz

    9. **异步操作**:1.13.0版本可能包含了对异步操作的支持,如使用libuv或Gevent等库进行非阻塞I/O。 10. **错误处理**:驱动程序提供了一套完善的错误处理机制,如`mongoc_error_api_version_set()`和`mongoc_...

    tornado-mongodb-performance-test:Tornado中的MongoDB驱动程序性能测试

    Tornado MongoDB Performance Test ...pip install pymongo==2.8.0 tornado mongoengine motor gevent virtualenv pymongo3.0 cd pymongo3.0 source bin/activate pip install pymongo==3.0.6 tornado mongoengin

    ImageMatcher:用Flask + MongoDB编写的服务器进行图像匹配

    2. **异步处理**:为了提高性能,可考虑使用异步编程(如使用Gevent或asyncio库),使服务器能够同时处理多个请求。 3. **缓存策略**:对于频繁查询的图像,可以使用缓存机制(如Redis)来减少数据库访问,提高响应...

    bson:不依赖MongoDB的适用于Python的独立BSON编解码器

    布森 不依赖MongoDB的Python独立BSON编解码器。 bson ObjectId实现是从PyMongo项目派生的,该项目已获得2.0版Apache许可。安装 ~ $ python setup.py install 或可以使用点子~ $ pip install bson快速开始 >> > ...

    Redis 和 Mongo 中时间序列数据的 Python 模块.zip

    //)Mongo(mongodb://)SQL(*sql*://)卡桑德拉(cassandra://、cql://)插入数据插入Redis批量插入Redis蒙戈SQL卡桑德拉元数据列表特性读取数据得到系列迭代定制阅读一般的拿来处理行凝结连接行坍塌转换Redis蒙戈...

    hotelsystem:酒店预订系统

    安装库如下:pip安装烧瓶pymongo fastapi uvicorn aiofiles gevent libscrc qrcode请求bcrypt单击Pillow 在文件夹“ Bin”中设置config.json。 将文件JSON上载到MongoDB。文件数据库位于db.rar中。 运行文件...

    leetcode下载-learn-git:少即是多

    gevent/eventlet WEB后端开发技术: 协议、架构、存储、缓存、安全 Bootstrap MySQL MongoDB Redis* Spark Hive Hadoop Storm 大数据开发 分布式计算平台 Scrapy Linux 下开发 NginX tomcat Rabbitmq WSGI 缓存 消息...

    Mastering-Flask:Packt发布的Mastering Flask代码存储库

    Flask OAuth 7 MongoDB,烧瓶MongoEngine 8 烧瓶安宁,烧瓶安宁9 RabbitMQ,芹菜10 Flask缓存,Flask调试工具栏,Flask资产,管理和邮件13 龙卷风,gevent,Apache,Nginx,Fabric相关的烧瓶书籍和视频

    Python示例-从基础到高手PDF

    第 15 章 Mongodb 千万级数据在 python 下的综合压力测试及应用探讨 第 16 章 通过 memcached 实现领号排队功能及 python 队列实例. 第 17 章 python 之利用 PIL 库实现页面的图片验证码及缩略图 第 18 章 如何将...

    feusal:匿名在线投票系统

    引人注目的 ...语境 它是什么? ... 它是由圣地亚哥校园区的UTFSM学生联合会的Facebook小组中的一个讨论产生的。 为什么?... gevent 1.0.2 Flask-OAuthlib 0.9.1 MongoDB 3.0.4 前端 Knockout.js jQuery

    openews:实验性NLP(自然语言处理)项目旨在捆绑各种分散的更新

    MongoDB-数据库层。 Redis-对刮板作业进行排队。 Flask-REST / Web服务。 概念 报废者:新的收藏家。 DataProcessor :处理由废料收集的原始数据并对其进行结构化(这是NLP的一部分)。 职位:排队的刮板工人。 ...

    Python面试宝典.rar

    面试中可能会考察异步请求(如使用asyncio或gevent)、代理IP池的构建以及数据抓取后的清洗和存储。 2. **Linux及Python语法面试题**:这涉及到对Python基础语法的深入理解和Linux操作系统的熟悉程度。面试中可能...

    001 Python服务端工程师面试指导-课程导学篇.rarpython面试

    同时,了解NoSQL数据库,如MongoDB或Redis,以及它们在不同场景下的适用性,将有助于你处理复杂的数据存储问题。 并发处理是提升服务性能的关键。Python的多线程、多进程模型,以及GIL(全局解释器锁)的工作原理,...

    django、celery、redis部署定时任务(实现多work、多队列).pdf

    4. 支持多种并发执行模型,如prefork(多进程)、Eventlet、Gevent、多线程等。 5. 提供了错误处理机制。 6. 提供了多种任务原语,方便实现任务分组、拆分和调用链。 7. 支持多种消息代理和存储后端。 8. Celery是...

Global site tag (gtag.js) - Google Analytics