celery相关内容

测试芹菜任务是否仍在处理中

如何在芹菜中测试任务(task_id)是否仍然处理?我有以下情况: 在Django视图中启动任务 将BaseAsyncResult存储在会话 关闭芹菜守护进程(硬),以便任务不再被处理 检查任务是否为“死” 任何想法?可以查询芹菜处理的所有任务,并检查我的是否仍然存在? 解决方案 在您的...中定义一个字段(PickledObjectField)存储芹菜任务的模型: ..
发布时间:2017-05-29 04:08:11 Python

在使用芹菜更新Django模型字段时,避免使用递归的save()方法

我重写了一个模型的save()方法来调用与Celery的异步任务。那个任务也会保存模型,所以我最终会得到一个递归的情况,其中Celery任务被重复调用。以下是代码: 模型的保存方式 def save(self,* args,** kwargs): super(Route,self).save(* args,** kwargs) from .tasks import get_ele ..
发布时间:2017-05-29 04:04:58 其他开发

将n个任务添加到芹菜队列中,等待结果

我将添加多个任务到芹菜队列并等待结果。我有各种各样的想法,我将如何实现这一点使用某种形式的共享存储(memcached,redis,db等),但是,我认为这是Celery可以自动处理,但我找不到任何在线资源。 / p> 代码示例 def do_tasks b): for a in b: c.delay(a) return c.all_results_some_how() ..
发布时间:2017-05-29 03:58:26 Python

芹菜任务运行更多的任务

我正在使用芹菜来启动主要的任务,踢了一些次要任务。我有两个任务已经写完了。 有没有办法轻松做到这一点?芹菜是否允许从任务中运行任务? 我的例子: @task def compute(users = None): 如果用户为None: users = User.objects.all() tasks = [] 用户用户: tasks.append(compute_ ..
发布时间:2017-05-29 03:38:40 Python

Django Celery生产者和工人模型数据库

我想开发一个使用Django作为Fronted和Celery做背景的应用程序。 现在,有时不同机器上的芹菜工作者需要数据库访问我的django前端机器(两个不同的服务器)。 他们需要知道一些实时的东西,并运行django应用程序与 python manage.py celeryd 他们需要访问所有型号的数据库。 我必须通过直接连接访问我的MySQL数据库吗?因此 ..
发布时间:2017-05-29 03:37:13 其他开发

单元测试芹菜中的AsyncResult

我试图在Django的单元测试框架中测试一些芹菜功能,但是每当我尝试检查AsyncResult时,测试就像从未开始。 我知道这个代码在一个真正的RabbitMQ环境中工作,所以我只是想知道为什么在使用测试框架时它不起作用。 $ b 这是一个例子: @override_settings(CELERY_EAGER_PROPAGATES_EXCEPTIONS = True, CELE ..
发布时间:2017-05-29 03:09:10 Python

创建芹菜任务然后同步运行

我的应用程序在页面上收集一堆电话号码。一旦用户点击提交按钮,我创建一个芹菜任务来调用每个号码并发出提醒消息,然后将其重定向到一个页面,在那里他们可以看到有关呼叫的实时更新。我正在使用网络套接字来更新每个呼叫的状态,并需要同步执行任务,因为我只能从一个号码拨出。 所以一旦第一个通话/任务完成,我想要下一个通话。 我看了一下 CELERY_ALWAYS_EAGER 设置,但它刚刚通过第一次 ..
发布时间:2017-05-29 03:03:21 Python

从任务恢复失败超过max_retries

我正在尝试异步地使用Web服务,因为它需要长达45秒才能返回。不幸的是,这个Web服务也有些不可靠,可能会导致错误。我已经设置了 django-celery 并让我的任务执行,这可以正常工作,直到任务失败超过 max_retries 。 这是我到目前为止所有的: @task default_retry_delay = 5,max_retries = 10) def请求(xml): ..
发布时间:2017-05-29 02:22:59 其他开发

django /芹菜:在150k Django对象上运行任务的最佳做法?

我必须在大约150k Django对象上运行任务。这样做最好的方法是什么?我正在使用Django ORM作为经纪人。数据库后端是MySQL,并在所有任务的task.delay()期间扼杀和死机。相关的,我也想从表单的提交中提出这一点,但由此产生的请求产生了一个超时的超长响应时间。 解决方案 我还会考虑使用除了使用数据库作为“代理”之外的其他东西。这真的不适合这种工作。 尽管如此,您可 ..
发布时间:2017-05-29 02:02:22 其他开发

以芹菜为根

由于访问原因,我需要运行我的Django和Celery作为root用户。它说我需要设置C_FORCE_ROOT环境变量。如何/在哪里设置环境变量? 解决方案 您可以将其设置为true: #export C_FORCE_ROOT =“true” 然后确定它被设置为一个env。变量 #echo $ C_FORCE_ROOT true 但请确保 ..
发布时间:2017-05-29 01:58:23 服务器开发

如何用芹菜和Django以编程方式生成芹菜条目

我希望能够以编程方式生成芹菜条目,并在添加条目时重新同步芹菜。文档此处状态 默认情况下,条目取自CELERYBEAT_SCHEDULE设置,但也可以使用自定义存储,例如将条目存储在SQL数据库中。 所以我试图弄清楚我需要扩展哪些类才能做到这一点。 我一直在看芹菜调度程序文档和 djcelery api docs ,但是关于这些方法所做的一些方面的文档是不存在的,所以要潜入一些来源 ..
发布时间:2017-05-29 01:40:30 其他开发

如何正确配置djcelery结果后端到数据库

我设置了: 我正在尝试设置djangocelery以将任务结果存储在数据库中。 p $ p> CELERY_RESULT_BACKEND ='djcelery.backends.database.DatabaseBackend' 然后我同步并迁移了db(没有错误)。 芹菜正在工作,任务得到处理(我可以得到结果),但管理员显示没有任务。在数据库中有两个表 celery_taskme ..
发布时间:2017-05-29 01:39:56 其他开发

芹菜为每个任务创建一个新的连接

我正在使用Redis的Celery运行一些后台任务,但是每次调用任务时,都会创建一个与Redis的新连接。我在Heroku和我的Redis Go Go计划允许10个连接。我很快就达到了这个限制,并获得了“客户端数量达到了”的错误。 如何确保Celery在单个连接上排队任务,而不是打开每次新的一个? 编辑 - 包括完整的追溯 文件“/app/.heroku/venv/lib/pyt ..
发布时间:2017-05-29 01:31:37 Python

如何从shell手动运行芹菜周期性任务?

我正在使用芹菜和芹菜。我定义了一个我想测试的定期任务。可以手动运行shell的周期性任务,以便查看控制台输出吗? 解决方案 从Django shell的任务?您可以使用任务的 .apply 方法来确保它在本地运行。 假设任务在$ code>任务中的Django应用程序 myapp 中称为 my_task 子模块: $ python manage.py shell >>>从m ..
发布时间:2017-05-29 01:24:56 Python

如何阻止芹菜工人的过程

我在Ubuntu EC2节点上有一个Django项目,我一直在使用 Celery 来设置异步。 我正在追踪这个。 我已经能够在命令行中使用以下功能获得基本任务: (env1)ubuntu @ ip-172-31-22-65:〜/ projects / tp $ celery --app = myproject.celery:app worker --loglevel = INFO ..
发布时间:2017-05-29 01:03:10 Python

Django和Celery的例子:定期任务

我一直在打Django / Celery文档一段时间,需要一些帮助。 我希望能够使用django-celery运行定期任务。我已经看到互联网(和文档)的几种不同的格式和模式,应该如何使用Celery实现这一点... 有人可以帮助一个基本一个django-celery定期任务的创建,注册和执行的功能实例?特别是,我想知道我是否应该编写一个扩展PeriodicTask类并注册的任务,或者是 ..
发布时间:2017-05-29 00:55:44 其他开发

Django&芹菜 - 路由问题

我正在使用Django和Celery,我正在尝试将路由设置为多个队列。当我指定任务的 routing_key 和 exchange (在任务装饰器中或使用 apply_async )),任务不会添加到代理(这是Kombu连接到我的MySQL数据库)。 如果我指定队列任务装饰器中的名称(这将意味着路由键被忽略),任务工作正常。这似乎是路由/交换设置的一个问题。 任何想法可能是什么问题? ..
发布时间:2017-05-29 00:40:21 其他开发

用Django + Celery更新干草堆搜索索引

对不起,如果这是一个基本问题,但是我搜索并找不到任何内容。在我的Django项目中,我使用的是芹菜。我从crontab转换命令是一个周期性的任务,它工作得很好,但它只是在模型上调用一个方法。是否可以从定期任务更新我的干草堆索引?有没有人这样做? /manage.py update_index 这是从Haystack文档更新索引的命令,但我不知道如何从任务中调用该索引。 ..
发布时间:2017-05-29 00:36:11 Python

为什么要运行Celery的计划任务比crontab更好?

考虑到Celery已经是运行任务队列的堆栈的一部分(即它不是被添加只是为了运行crons,这似乎是一个过度的IMHO)。 它的“周期性任务”功能如何有助于替代crontab? 具体寻找以下几点。 crontab的主要优缺点 使用芹菜比crontab更好的选择的案例 Django具体用例:芹菜与crontab一起运行基于django的定期任务,芹菜已被包含在堆栈中作为 django ..
发布时间:2017-05-29 00:35:19 Python