python motor异步mongodb操作

from motor.motor_asyncio import AsyncIOMotorClient
from asyncio.coroutines import coroutine
import datetime
import asyncio
import time
from multiprocessing import Process
import random




__author__ = "Ennis"




@coroutine
def do_find(vin):
    print("start to find document: " + vin)
    start_time = time.time()
    db = AsyncIOMotorClient('mongodb://192.168.1.212:12345')["scooter"]
    count = 0
    cursor = db['tVehiclePosition'].find({'vin': vin, 'reporttime':
        {'$lt': datetime.datetime(2017, 4, 30, 11, 11, 11), '$gt': datetime.datetime(2017, 4, 1, 11, 11, 11)}})
    while (yield from cursor.fetch_next):
        count += 1
        cursor.next_object()
    end_time = time.time()
    print("elapsed time:", count, end_time - start_time)




def start_fetch_process(phone):
    loop = asyncio.get_event_loop()
    loop.run_until_complete(do_find(phone))


if __name__ == "__main__":
    processes = []
    for index in range(50):
        process = Process(target=start_fetch_process, args=(str(1000000000 + random.randint(0, 299999)), ))
        processes.append(process)
        process.start()


        for process in processes:
            process.join()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值