首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用具有扭曲的cassandra python驱动程序

使用具有扭曲的cassandra python驱动程序
EN

Stack Overflow用户
提问于 2017-11-22 12:35:01
回答 1查看 266关注 0票数 0

我的python应用程序使用扭曲的,并在引擎盖下使用cassandra python驱动程序。Cassandra驱动程序可以使用cassandra.io.twistedreactor.TwistedConnection作为连接类,并将其用作查询方式。

TwistedConnection类使用timer和reactor.callLater检查查询任务是否超时。

问题是当我使用cassandra (cassandra.cqlengine.models.Model)查询时。

代码语言:javascript
代码运行次数:0
运行
复制
from cassandra.cqlengine import columns
from cassandra.cqlengine.models import Model


# ORM for user settings
class UserSettings(Model):
    userid = columns.Text(primary_key=True)
    settings = columns.Text()

# Function registered with autobahn/wamp
def worker():
    userid = "96c5d462-cf7c-11e7-b567-b8e8563d0920"

    def _query():
        # This is a blocking call, internally calling twisted reactor
        # to collect the query result
        setting = model.UserSettings.objects(userid=userid).get()
        return json.loads(setting.settings)

    threads.deferToThread(_query)

twisted.trial单元测试中运行时。使用上述代码的测试总是失败

故障: twisted.trial.util.DirtyReactorAggregateError:反应器不干净。 DelayedCalls:(将twisted.internet.base.DelayedCall.debug = True设置为debug)

但是,在使用此代码的高速公路工人中,工作正常。

TwistedConnection的cassandra驱动程序代码一直在调用callLater,我找不到一种方法来查找这些调用是否仍在等待,因为这些调用隐藏在TwistedLoop类中。

问题:

  • 这是处理cassandra查询的正确方法(反过来又称为扭曲的反应堆)
  • 如果是,是否有办法解决由cassandra驱动超时(reactor.callLater)产生的reactor.callLater
EN

回答 1

Stack Overflow用户

发布于 2018-10-23 09:31:34

我的理解是:

  1. 您可能需要在过滤时调用.filter函数吗?正如文档 setting = model.UserSettings.objects.filter(userid=userid).get()中提到的
  2. 也许通过改变Cassandra conf yaml文件的响应时间来解决这个问题?
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47434880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档