【问题标题】:Why following Couchbase async Python code does not work?为什么遵循 Couchbase 异步 Python 代码不起作用?
【发布时间】:2020-07-01 13:02:10
【问题描述】:

考虑以下代码:

import asyncio
from acouchbase.cluster import Cluster
from couchbase.cluster import ClusterOptions
from couchbase.cluster import PasswordAuthenticator

async def do_crud_op():
    cb = Cluster.connect("couchbase://localhost", options=ClusterOptions(PasswordAuthenticator("user", "password")))
    cb = cb.bucket('customers')
    await cb.upsert('id', {'some': 'value'})
    return await cb.get('id')
    
loop = asyncio.get_event_loop()
rv = loop.run_until_complete(do_crud_op())
print(rv.value)

我在 Ubuntu 20.04 上使用 Python 3.0 SDK 和 COuchbase 6.5.1。上面的代码给了我LCB_ERR_NO_CONFIGURATION 异常。有人可以帮忙吗?

【问题讨论】:

    标签: python couchbase


    【解决方案1】:

    好吧,我发现我们需要使用 on_connect 方法等待存储桶变量才能使其工作。

    import asyncio
    from acouchbase.cluster import Cluster
    from couchbase.cluster import ClusterOptions
    from couchbase.cluster import PasswordAuthenticator
    
    async def do_crud_op():
        cb = Cluster.connect("couchbase://localhost", options=ClusterOptions(PasswordAuthenticator("user", "password")))
        cb = cb.bucket('customers')
        await cb.on_connect()
        await cb.upsert('id', {'some': 'value'})
        return await cb.get('id')
        
    loop = asyncio.get_event_loop()
    rv = loop.run_until_complete(do_crud_op())
    print(rv.value)
    

    【讨论】:

      猜你喜欢
      • 2019-12-11
      • 2013-01-23
      • 2017-04-09
      • 2011-05-31
      • 1970-01-01
      • 2014-12-03
      • 1970-01-01
      • 1970-01-01
      • 2020-05-18
      相关资源
      最近更新 更多