Couchbase 的 Twisted API 无法与 Python Tornado 一起使用

2024-03-14

我正在尝试使用 Couchbase 4.0 开发人员预览版运行 Tornado 服务器。

import tornado.web
import tornado.httpserver
import tornado.options
import tornado.ioloop
import tornado.websocket
import tornado.httpclient
from tornado import gen
import os.path
from tornado.options import define, options, parse_command_line
import time

#from couchbase.bucket import Bucket
from twisted.internet import reactor
from txcouchbase.bucket import Bucket

from couchbase.n1ql import N1QLQuery, N1QLError
from pprint import pprint

server = "x.x.x.x"
bucketname = "zips"

Connection = "couchbase://" + server + "/" + bucketname

bkt = Bucket(Connection)

class IndexHandler(tornado.web.RequestHandler):
    @tornado.web.asynchronous   
    def get(self):
        print "entered"
        query = "SELECT * FROM `zips` where pincode= '632014'"
        q = N1QLQuery(query)
        #self.bkt = bkt
        t0 = time.time()
        res = bkt.n1qlQueryAll(q)
        res.addCallback(self.on_ok)
        reactor.run()
        t1 = time.time()
        print t1-t0
        self.write("Hello World")

    def on_ok(self,response):
        print "LOl"
        for each in res:
            print each
        reactor.stop()
        self.finish()

handlers = [
    (r'/',IndexHandler),
]

if __name__ == "__main__":
    parse_command_line()
    # template path should be given here only unlike handlers
    app = tornado.web.Application(handlers, template_path=os.path.join(os.path.dirname(__file__), "templates"),
                                  static_path=os.path.join(os.path.dirname(__file__), "static"), cookie_secret="61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vo=", debug=True)
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(8888, address='0.0.0.0')
    tornado.ioloop.IOLoop.instance().start()

在我运行此命令后,由于某种原因,回调函数永远不会被调用。我找不到任何合适的文档,因此必须通过源代码来编写此内容。我仍然很困惑,因为我是异步编程的新手。有人可以告诉我哪里出了问题以及是否有更好的方法?


在异步编程中,您只想启动一个事件循环(例如IOLoop.start() or reactor.run()) 一次,在程序的顶部。你正在呼唤IOLoop.start(),所以不要调用reactor.run()您想要告诉 Twisted 使用 Tornado IOLoop 作为其反应器。导入前reactor, do

import tornado.platform.twisted
tornado.platform.twisted.install()
from twisted.internet import reactor

See http://www.tornadoweb.org/en/stable/twisted.html#twisted-on-tornado http://www.tornadoweb.org/en/stable/twisted.html#twisted-on-tornado了解更多。

完成此操作后,您可以调用扭曲库,而无需启动和停止反应器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Couchbase 的 Twisted API 无法与 Python Tornado 一起使用 的相关文章

随机推荐

  • 中没有足够的空间。如何添加多行

    我想在选项文本下添加描述该选项的行 默认情况下 mat select 限制字符数并在行末尾添加 我想要有需要的多行选项 斯塔克闪电战演示 https stackblitz com edit angular wj9svw https stac
  • Python-如何检查Redis服务器是否可用

    我正在开发一个用于访问 Redis 服务器的 Python 服务 类 我想知道如何检查Redis服务器是否正在运行 而且如果不知何故我无法连接到它 这是我的代码的一部分 import redis rs redis Redis localho
  • Ruby 项目帮助。无法从数组中获取已保存的实例

    TLDR 我正在开发一个使用 API 创建实例的项目 我希望能够回忆起所有的实例 但不知道如何回忆 我对 Ruby 和一般编程还比较陌生 所以我希望我能很好地解释一切 这是我的代码 class Suggestion attr accesso
  • 使用 AJAX 在 Bootstrap Modal 上调用 PHP 函数

    我使用 PHP 循环在我的页面上回显了用户列表 当我单击每个用户的名称时 会弹出一个 Bootsrap 模态并显示该用户的更多详细信息 链接看起来像这样 a href user UserName a 如您所见 我将用户的 ID 传递给 Bo
  • Ruby on Rails、LinkedIn:模块错误

    有人遇到过这个错误吗 NoMethodError undefined method new for LinkedIn Module 我认为这与omniauth和linkedin有关 这是我的 Gemfile gem omniauth gem
  • 要构建 php MVC,我需要注意哪些命名约定?

    我对 OO PHP 还很陌生 但是我了解它是如何工作的 并准备开始为我正在开发的大型网站构建 MVC 我知道没有必要这么写你必须这样做但还是得有一些正常的习惯 类名 驼峰命名法 下划线 类文件 与类相同 url post get 控件名称
  • Django 更新查询集以更改外键的 ID

    我正在尝试更新一堆对象的 id 以及引用这些对象的相关表 class Test models Model id models IntegerField primary key True class Question models Model
  • JavaScript RegEx 确定电子邮件的域(例如 yahoo.com)

    使用 JavaScript 我想接受输入 第一次验证电子邮件是否有效 我解决了这个问题 2 验证电子邮件地址是否来自 yahoo com 有人知道可以提供域名的正则表达式吗 thxs var myemail email protected
  • 是 .yaml 还是 .yml?

    根据yaml org http www yaml org faq html 官方文件扩展名是 yaml Quote YAML 文件有官方扩展名吗 请尽可能使用 yaml 然而 互联网上对于使用哪个扩展似乎存在分歧 如果你抬头看网上的例子 h
  • 如何在控件实例化后立即发送自定义事件消息?

    创建此自定义控件并在客户端中测试它时 发送 ValueChanged 事件时出现空异常错误 自定义控件来源 using System using System Collections Generic using System Compone
  • 从内存缓冲区初始化 C++ std::istringstream?

    我有一个内存块 不透明 我想通过他们的 C 适配器将其存储在 mySQL 中的 Blob 中 适配器需要一个 istream virtual void setBlob unsigned int parameterIndex std istr
  • 浏览器的HTTP缓存的存储位置在哪里?磁盘或内存

    浏览器的HTTP缓存的存储位置在哪里 磁盘或内存 我只是想知道为什么有些文件来自磁盘缓存而另一些文件来自内存缓存 HTTP 缓存背后的机制是什么 哪个缓存的优先级更高 看起来脚本和样式表存储在磁盘中 而图像和字体存储在内存中 也许是解决方案
  • Django 查询选择不同的字段对

    我的 提交 字段有一个用户和一个问题 如何获得 SQL 搜索结果 该结果将给出每个用户 问题对仅包含一个结果的列表 模型是这样的 class Problem models Model title models CharField Title
  • 使用 CSS 3D 变换从 DOM 对象接收变换后的鼠标事件数据

    目前 JavaScript 鼠标事件中是否有任何数据可以让我轻松查找或计算相对于转换元素的 3D 空间的鼠标位置 为了直观地说明 左边是没有 3d 矩阵的 div 右边是经过 3d 变换的 div o是鼠标事件的起源 o gt o 在下面的
  • Python - Pandas 删除 Excel 中的特定行/列

    我有以下 Excel 文件 我想清理特定的行 列 以便我可以进一步处理该文件 我已经尝试过这个 但我没有设法删除任何空白行 我只能设法从包含数据的行中修剪掉 在这里 我试图只保存第三行及以后的数据 xl pd ExcelFile MRD x
  • TemplateInputException:解析模板时出错 ****,模板可能不存在

    我正在使用 Spring Boot 和 mySql 数据库 我正在尝试通过团队表过滤搜索 最初这个表是一个 thymeleaf 表 参见我的相关 SO 问题 但在用尽互联网上可用的所有资源后 没有成功 我决定以不同的方式实现搜索 我发现了一
  • 通过 C# 和 OleDb 将行插入 Excel 电子表格

    我需要以编程方式将一行多次插入 Excel 电子表格中 我需要实际上插入一个新行并且不插入数据 也就是说 我实际上需要将所有其他行向下移动一位 我目前正在使用 OleDB 插入数据本身 如下所示 Note I have missed som
  • 写组合缓冲区位于哪里? x86

    Write Combine 缓冲区在物理上是如何连接的 我见过说明许多变体的框图 L1 和内存控制器之间 CPU 的存储缓冲区和内存控制器之间 CPU 的 AGU 和 或存储单元之间 它依赖于微架构吗 写缓冲区在不同的处理器中可以有不同的目
  • 如何将 iPhone 应用程序从 Xcode 部署到真实的 iPhone 设备?

    如果没有 99 美元的 Apple 证书 如何将 iPhone 应用程序从 Xcode 部署到真实的 iPhone 设备 I ve used a mix of two howtos Jason s https stackoverflow c
  • Couchbase 的 Twisted API 无法与 Python Tornado 一起使用

    我正在尝试使用 Couchbase 4 0 开发人员预览版运行 Tornado 服务器 import tornado web import tornado httpserver import tornado options import t