Python 如何获取龙卷风目标?
我想用键获取龙卷风对象的值 这是我的代码:Python 如何获取龙卷风目标?,python,object,tornado,amazon-elastic-beanstalk,Python,Object,Tornado,Amazon Elastic Beanstalk,我想用键获取龙卷风对象的值 这是我的代码: beanstalk = beanstalkt.Client(host='host', port=port) beanstalk.connect() print("ok1") beanstalk.watch('contracts') stateTube = beanstalk.stats_tube('contracts', callback=show) print("ok2") ioloop = tornado.ioloop.IOLoop.insta
beanstalk = beanstalkt.Client(host='host', port=port)
beanstalk.connect()
print("ok1")
beanstalk.watch('contracts')
stateTube = beanstalk.stats_tube('contracts', callback=show)
print("ok2")
ioloop = tornado.ioloop.IOLoop.instance()
ioloop.start()
print("ok3")
这是函数'show()``
当我查看文档时,我发现:
当我执行此代码时,我有:
ok1
ok2
3
事实上,我得到了我想要的结果“3”,但我不明白为什么我的程序继续运行?为什么ioloop不能关闭?我没有
ok3
当我编译如何关闭ioloop并拥有ok3
?beanstalk.stats\u tube
是异步的,它返回一个Future
,表示尚未解决的未来结果
此时,您的回调show
将使用包含解析结果的dict执行。因此您可以定义show
如下:
def show(stateTube):
pprint(stateTube['current-job-ready'])
beanstalk.stats_tube('contracts', callback=show)
from tornado.ioloop import IOLoop
IOLoop.current().start()
请注意,您传递的是show
,而不是show()
:您传递的是函数本身,不是调用函数并传递其返回值
除了传递回调之外,解决未来问题的另一种方法是在协同路由中使用它:
from tornado import gen
from tornado.ioloop import IOLoop
@gen.coroutine
def get_stats():
stateTube = yield beanstalk.stats_tube('contracts')
pprint(stateTube['current-job-ready'])
loop = IOLoop.current()
loop.spawn_callback(get_stats)
loop.start()
beanstalk.stats\u tube
是异步的,它返回一个Future
,表示尚未解析的未来结果
此时,您的回调show
将使用包含解析结果的dict执行。因此您可以定义show
如下:
def show(stateTube):
pprint(stateTube['current-job-ready'])
beanstalk.stats_tube('contracts', callback=show)
from tornado.ioloop import IOLoop
IOLoop.current().start()
请注意,您传递的是show
,而不是show()
:您传递的是函数本身,不是调用函数并传递其返回值
除了传递回调之外,解决未来问题的另一种方法是在协同路由中使用它:
from tornado import gen
from tornado.ioloop import IOLoop
@gen.coroutine
def get_stats():
stateTube = yield beanstalk.stats_tube('contracts')
pprint(stateTube['current-job-ready'])
loop = IOLoop.current()
loop.spawn_callback(get_stats)
loop.start()
您有一个
未来
对象。请显示您试图呼叫的龙卷风代码this@cricket_007,我已经更新了我的帖子。你有一个未来的对象。请显示您试图呼叫的龙卷风代码this@cricket_007,我更新了我的帖子。我编辑了我的帖子。我试着做第一种方法,但我有一些问题…没关系,我找到了解决办法!谢谢!我在回调中发布了一个关于异常的新问题:你能帮我吗?我已经编辑了我的帖子。我试着做第一种方法,但我有一些问题…没关系,我找到了解决办法!谢谢!我在回调中发布了一个关于异常的新问题:你能帮我吗?