V2EX 首页   注册   登录
 resolvewang 最近的时间轴更新

resolvewang

  •   V2EX 第 181389 号会员,加入于 2016-07-12 10:35:43 +08:00
    分布式微博爬虫:https://github.com/ResolveWang/WeiboSpider。欢迎大家试用
    resolvewang 最近回复了
    72 天前
    回复了 JEFFMEME 创建的主题 iDev MAC 10.11 命令行报错,如何修复
    后人+++
    很强
    77 天前
    回复了 recall704 创建的主题 分享创造 k8s 离线部署 ansible 脚本
    感谢分享,star+fork 了。到时候有问题再请教一下你
    @junneyang 谢谢回答。thrift 是跨语言,但 thriftpy 应该不跨语言,我也没深入使用,这方面还是小白。感谢
    经过一段时间的思考,我现在的理解是,thrift 它是为不同项目提供 rpc 调用,而 celery 却是单一项目的 rpc 调用,需要共享相同的 Celery 实例。
    目前我能理解到的就是这个了。。。
    @ttycode 恩恩,是的
    @haofly thrift 总听说过的吧。thriftpy 就是 thrift 的纯 python 实现。
    @Yc1992 哈哈哈,我也这么觉得
    254 天前
    回复了 resolvewang 创建的主题 问与答 aiohttp 怎么复用连接池
    @messense 好的,明白了,感谢
    254 天前
    回复了 resolvewang 创建的主题 问与答 aiohttp 怎么复用连接池
    @messense 我一直以为 teardown 和 setup 在 unnittest.main()中只会运行一遍。。。

    event loop 在程序的整个生命流程中,如果被 close 了,那么就不能使用 asyncio.get_event_loop()获取了吗?根据上面的代码,感觉是这样的。那这也就是说,我们只能在程序不用 event loop 的时候再关吗?

    感觉自己对 event loop 模型还不是特别清楚。
    254 天前
    回复了 resolvewang 创建的主题 问与答 aiohttp 怎么复用连接池
    @messense 感谢您的耐心回复!通过你的回复,我对 asyncio 的理解进了一步,前两天看了差不多一天的文档,都还是有点懵。现在还有两个问题,我还是不是很懂,希望您能再帮忙解一下惑。

    `
    async def select(pool, sql, args=(), size=None):
    async with pool.acquire() as conn:
    async with conn.cursor() as cur:
    await cur.execute(sql.replace('?', '%s'), args)
    if size:
    r = await cur.fetchmany(size)
    else:
    r = await cur.fetchall()
    return r
    `

    我在做关于这段代码的单元测试的时候,虽然执行正确,但是有一个警告,` ResourceWarning: Unclosed connection <aiomysql.connection.Connection object at 0x1030d1710>
    ResourceWarning)`

    大概意思就是数据库连接没有关闭吧。但是这里用了上下文管理器啊,它不应该会关闭连接吗?我如果在 return 语句之前,加上 conn.close(), 就不会报这个警告了。

    `
    def test_select(self):
    sql = 'select * from minifw where id = (%s)'
    rs = self.loop.run_until_complete(base_db.select(self.pool, sql, args=(1,), size=1))
    self.assertEqual(len(rs), 1)
    `
    这段代码是测试 select。


    另外还有一个问题,我想问问
    self.loop = asyncio.new_event_loop()
    asyncio.set_event_loop(self.loop)


    self.loop = asyncio.get_event_loop()
    的区别,因为在我执行 unnittest.main()的时候,用前者就可以执行,用后者就会报错,`Event loop is closed`,如果是测试单个数据库操作,后者就不会报错。

    期望您的回复,感恩
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   775 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 45ms · UTC 17:25 · PVG 01:25 · LAX 09:25 · JFK 12:25
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1