- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
对于 celery 的高级用户来说,这是一个相当具体的问题。让我解释一下我的用例:
我必须运行 ~1k-100k 任务来运行模拟(电影)并将模拟数据作为相当大的较小对象(帧)列表返回,比如每帧 10k-100k 和 1k 帧。所以产生的数据总量会非常大,但是假设我有一个数据库可以处理这个。速度在这里不是关键因素。稍后我需要计算每个帧的特征,这些特征可以完全独立完成。
框架看起来像一个dict
,它指向一些numpy数组和其他简单数据,如字符串和数字,并有一个唯一的标识符UUID。
重要的是,最终感兴趣的对象是这些生成列表的任意连接和拆分。作为一个比喻,考虑将结果电影切碎并重新组合成新电影。这些最终列表(电影)基本上是使用 UUID 对帧的引用列表。
现在,我考虑使用 celery 获取这些第一部电影,因为无论如何这些最终都会在后端数据库中,我可能会无限期地保留这些结果,至少是我指定要保留的那些。
我能否配置一个后端,最好是一个 NonSQL 数据库,以保持结果并在以后使用对象 UUID 独立于 Celery 访问这些结果。如果是这样,由于开销和性能等原因,这是否有意义。
另一种可能性是不返回任何东西,让工作人员将结果存储在数据库中。那是首选吗?当 Celery 已经可以做到这一点时,似乎没有必要与另一个数据库进行第二个通信 channel 。
我还对关于将 Celery 通常用于运行时间长 (>1h) 并返回大型结果对象的高度独立任务的评论感兴趣。失败没有问题,可以重新启动。由此产生的电影是随机的!所以函数式方法可能会有问题。即使存储随机种子也可能无法保证可重现的结果!虽然我没有副作用。我只是可能有很多分布广泛的可用 worker 。想象一下在一个封闭的环境中有很多台式机,即使速度很慢,每个工作人员都会提供帮助。网络速度和安全性在这里不是问题。我知道这不是最初的用例,但在这些情况下使用它似乎非常容易。我发现最好的类比是像 Folding@Home 这样的项目。
最佳答案
Can I configure a backend, preferably a NonSQL DB, in a way to keep the results and access these later independent from Celery using the objects UUID.
是的,您可以配置celery 将其结果存储在NoSQL 数据库中,例如redis,以便稍后通过UUID 访问。将控制您感兴趣的行为的两个设置是 result_expires
和 result_backend
.
result_backend
将指定您要将结果存储在哪个 NoSQL 数据库中(例如,elasticsearch 或 redis),而 result_expires
将指定任务完成后多长时间结果将可供访问。
任务完成后,您可以像这样在 python 中访问结果:
from celery.result import AsyncResult
result = task_name.delay()
print result.id
uuid = result.id
checked_result = AsyncResult(uuid)
# and you can access the result output here however you'd like
And if so does that make sense because of overhead and performance, etc.
我认为这个策略非常有意义。在为 Web 用户生成长时间运行的报告时,我通常会多次使用它。最初的帖子将从 celery 任务返回 UUID。 Web 客户端可以使用 UUID 通过 javascript 轮询应用服务器,以查看任务是否准备就绪/完成。报告准备就绪后,页面可以将用户重定向到允许用户通过传入 UUID 下载或查看报告的路由。
关于python - 将(特定的) celery 结果对象保留在 NoSQL 后端以供独立使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41587933/
我有一个使用 css 列的下拉菜单,当我使用 jquery slide() 时,它会调整下拉框的大小,并重排内容直到达到完整高度。 这是一个工作示例 https://codepen.io/peterg
我有一个带有嵌套 ScrollViewer 的 Expander,如下所示: 代码(简化版)
我想在所有 ajax 调用之后调用一些 javascript 函数。我知道如何调用每个单独的 ajax 调用中的函数,如下所示: function xyz() { if (window.XMLHttp
我想将值从应用程序端传递到 api。在此 api 调用中传递图像、名字、电子邮件、电话和位置。在 Debug模式下,检查值不会被传递。 代码下方 File file = null;
我正在尝试在使用reportlab生成的pdf中的表格后插入分页符,我正在使用以下函数生成pdf: def render_to_pdf(template_src, context_dict): t
CBPeripheralManager 是否有推荐的方法来终止连接。到目前为止我发现的最好的方法就是干脆不响应动态值,然后 BLE 堆栈似乎关闭了连接,但这似乎很粗糙。 一定有更好的方法吗? 最佳答案
我的 API 的 REST 端位于以下地址:http://test.jll.aplikacje-dedykowane.pl/rest/warehouse/all 。现在,我尝试返回在此页面准备的 JS
我有以下 CPP 代码。我想做的是,当我的 native 端发生错误时,我会通知 Java 该错误。我用了How can I catch SIGSEGV (segmentation fault) an
限制对象的方法之一是像这样给函数添加限制 def ten_objects(): obj = Model.objects.all()[0:10] # limit to 10 retur
我目前在电信公司实习,这是一个专业,也是本科生。我有很多选择。据我所知,我知道独立应用程序端的 c、c++、c#、java 语言,在移动端我尝试进入 android 世界,也知道 php、mysql、
我想让我的边框底部看起来像这样: 有一个 flex 的末端。目前它看起来像这样: 我尝试使用的 CSS 是 border-bottom-right-radius: 10px;。代码如下所示:
我有一个 Flutter 项目,突然间,据我所知,我没有做任何特别的事情..Android 端开始显示错误,我完全迷路了,我完全不知道哪里出了问题,也不知道为什么会这样。 这就是我打开 android
我有一个自定义对象列表 (List) 。我需要将此数据发送到 React Native 端以显示在平面列表中。我该怎么做?这个列表出现在 类 NativeToReact(reactContext:Re
我有这个代码: #if defined(NOT_STANDALONE) JNIEXPORT void JNICALL sumTraces (JNIEnv* env, jclass caller,
我有一个定义一对多模型关系的 Django 应用程序。模型如下所示: from django.db import models # Create your models here. class Str
我有以下代码,它根据 IFrame 内容的大小调整 IFrame 的大小: function setIframeHeight(id) {
如何创建自定义过滤器 angularjs javascript Controller 端?我想通过 SegmentId 在名为段的数组中搜索,以创建过滤器,该过滤器通过 SegmentId 在段数组搜
我的代码在 netbeans 8.0.2 中我几乎尝试了所有方法,但没有结果。请帮助我。如何在 netbeans 中显示它? 最佳答案 您只需单击源包(源文件),它就会显示您的项目文件。 关于java
我想这是纯 C++ 问题和 OpenGL 问题之间的一种交叉。我有一个统一的缓冲区,并在其中分配 sizeof(ShaderData) 字节的空间。我在着色器的 GPU 端使用 std140 布局。
我对 Hadoop 中 reduce 端的文件合并过程的理解有问题,因为它在“Hadoop:权威指南”(Tom White)中有所描述。引用它: When all the map outputs ha
我是一名优秀的程序员,十分优秀!