如何在 Tornado 应用程序中偶尔使用线程和期货?
我的服务器偶尔需要在单独的线程或进程中运行长时间运行的任务(任务释放 GIL。)我想用 concurrent.futures 执行器来做到这一点
from concurrent.futures import ThreadPoolExecutor
executor = ThreadPoolExecutor(10)
future = executor.submit(func, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
我如何将这个未来整合到 Tornado 事件循环中?理想情况下,这种集成与tornado.gen协程配合得很好。我想从未来让步,而不会阻止它。实现这一目标的最佳方法是什么?
理想情况下,我想从concurrent Future.
我正在寻找一个功能f,使以下成为可能
@gen.coroutine
def my_coroutine(...)
...
future = executor.submit(func, *args, **kwargs)
result = yield f(future)
Run Code Online (Sandbox Code Playgroud) 我正在整理一个概念证明,其中我想使用 PyCuda 在分布式环境中处理大型字符数据文件(每个任务一个文件中约 8GB) - 具体来说是 AWS。我知道 HDFS 会对数据文件进行分段并将其分发给工作人员,但我试图让我的环境尽可能简单,并且如果我不需要,我宁愿不必安装 Hadoop。
我最近观看了 Continuum Analytics 的一些关于他们的 Dask 框架的网络研讨会,看起来它可以完全满足我的需求。鉴于上述段落和 Dask 框架,当前对文件系统的推荐是什么?我是坚持使用 HDFS 还是有更好/更简单的解决方案?
当我选择Bokeh的一行(或多行)时,是否可以触发回调事件DataTable?
def update(rows):
...
dt = DataTable(...)
dt.on_select(update)
Run Code Online (Sandbox Code Playgroud)
我看到有一个.on_change方法可以触发特定属性,但是我找不到与所选行对应的属性.
我想将某个绘图上的所有Bokeh字形转换为其他页面的链接.这可能吗?
例如,如果我有一个国家/地区的地图,每个国家/地区都作为补丁,如果用户点击某个国家/地区,我想将其重定向到该维基百科页面.
我遇到了一个问题,我的分布式集群似乎“挂起” - 例如,任务停止处理,因此积压了未处理的任务,因此我正在寻找某种方法来帮助调试正在发生的事情。
有Client一个processing方法可以告诉我每个工作人员当前正在运行哪些任务,但 AFAICS 这是有关对象上可用任务的唯一信息吗Client?
我想要的是不仅能够查询处理任务,还能够查询所有任务,包括已处理、正在处理和出错的任务,并且每个任务都能够获取一些统计信息,例如submitted_time和 ,completion_time这将使我能够找出哪些任务正在阻塞集群。
一个很好的事情是能够获得args/kwargs任何给定的任务。这对于调试失败的任务特别有帮助。
目前是否有任何此功能可用,或者有什么方法可以获取我想要的信息?
关于如何调试问题的任何其他建议都将受到极大欢迎。
在SQLAlchemy中,我想用数字除以然后向下舍入.例如,我正在寻找以下Python的等价物
>>> 3.1415 // 0.1
31.0
Run Code Online (Sandbox Code Playgroud)
可悲的是,SQLAlchemy Column Elements似乎并不支持 __floordiv__
>>> mycol // 3
***TypeError: unsupported operand type(s) for //: 'Column' and 'int'
Run Code Online (Sandbox Code Playgroud)
有办法解决这个问题吗?有相当于math.floor?
鉴于一些数据
In [1]: import numpy as np
In [2]: x = np.array(['a', 'b', 'b', 'a'])
Run Code Online (Sandbox Code Playgroud)
并排序索引
In [3]: i = np.array(['a', 'b'])
Run Code Online (Sandbox Code Playgroud)
我想找到索引中每个数据条目的位置
In [4]: # solution here
array([0, 1, 1, 0])
Run Code Online (Sandbox Code Playgroud)
这有点像分类.我不想在这里使用熊猫.我想在固定长度的字符串上这样做.我需要这个有点高效.
我有一个Bokeh服务器应用程序。我想在命令行中传递自定义选项:
bokeh serve /path/to/script.py --my-option foo
Run Code Online (Sandbox Code Playgroud)
这可能吗?散景会以某种方式通过这些选择吗?
python ×6
bokeh ×5
dask ×2
arrays ×1
concurrency ×1
distributed ×1
numpy ×1
sqlalchemy ×1
tornado ×1