首页 > TAG信息列表 > django-celery

更改Django的ROOT_URLCONF

我们正在建立一个多租户网站,有些租户想要不同的URL等.没什么大不了的,这是我们已经通过制作多个urls.py作为ROOT_URLCONF来解决的问题.当涉及到请求时,我们只需使用设置request.urlconf的中间件即可.到现在为止还挺好. 但是,我们还运行Celery进行一系列夜间任务,其中之一是发送电

防止Celery Beat运行同一任务

我每30秒安排一次芹菜运行任务.我有一个每天作为任务运行,另一个每周在用户指定的时间和星期几运行.它检查“开始时间”和“下一个预定日期”.在任务完成之前,下一个计划的日期不会更新. 但是,我想知道如何确保芹菜节拍只运行一次任务.我现在看到,芹菜将多次运行某个任务,直到该任

失败的django-celery任务的参数获取

给定任务的ID,是否可以获取用于调用特定失败的芹菜任务的参数?我使用MongoDB作为代理,并使用django-celery软件包. 我知道您可以很容易地获得结果,但是想知道您是否可以使用用于调用该任务的参数来做到这一点. 谢谢解决方法:我设法通过为我的任务实现自定义on_failure处理程序来解决

使用django数据库执行之前,芹菜撤销任务

由于并发原因,我使用的是Django数据库而不是RabbitMQ. 但是我无法解决在执行任务之前将其撤消的问题. 我找到了有关此问题的一些答案,但它们似乎不完整,或者我无法获得足够的帮助. > first answer > second answer 当我不想执行任务时,如何使用模型扩展celery任务表,并添加一个布尔

Python – 从另一个队列重试失败的Celery任务

我正在向Celery的网络服务发布数据.有时,由于互联网关闭,数据不会发布到Web服务,并且任务会在发布之前无限次重试.重新执行任务是不必要的,因为网络已关闭,因此不需要再次重新尝试. 我想到了一个更好的解决方案,即如果任务失败三次(重试3次),则转移到另一个队列.此队列包含所有失败

python – Django Celery,ImportError:不支持按文件名导入

当我尝试为我的django应用程序运行我的芹菜工作时,我收到导入错误. 据我所知,它是kombu.utils失败的导入 接下来是一个相当大的堆栈跟踪: $./manage.py celery worker --loglevel=info Traceback (most recent call last): File "./manage.py", line 10, in <module> execute

python – 跟踪celery.group任务的进度?

@celery.task def my_task(my_object): do_something_to_my_object(my_object) #in the code somewhere tasks = celery.group([my_task.s(obj) for obj in MyModel.objects.all()]) group_task = tasks.apply_async() 问题:芹菜有什么东西可以检测团体任务的进度吗?我可以

我可以通过rabbitmq使用java发送任务芹菜吗?

我只是触摸芹菜和java 2天.

我怎么能将一个大的django-celery tasks.py模块拆分成更小的块?

我有一些非常冗长的任务函数,我想从我的tasks.py模块中分离出来,但仍然能够像myapp.tasks import my_task一样调用.我尝试为每个任务创建子模块,但后来我必须在tasks / __ init__.py中添加一些技巧,这看起来非常h​​ackish(并且需要赋予任务与模块相同的名称): import pkgutil fo

python – Celery-Supervisor:如何重新启动主管工作以使新更新的芹菜任务正常工作?

我的celery服务器有一个正在运行的主管工作.现在我需要向它添加一个新任务,但遗憾的是我的celery服务器命令未配置为自动跟踪这些动态更改. 这是我的芹菜命令: python manage.py celery worker --broker=amqp://username:password@localhost/our_app_vhost 为了重启我的芹菜过程,

python – django celery只调用2个apply_async任务中的1个

我需要调用以下2个apply_async任务: escalate.apply_async((e.id), countdown=3) escalate.apply_async((e.id), countdown=3) 我的任务实现如下: @app.task def escalate(id, group): escalation_email, created = EscalationEmail.objects.get_or_create() escalat

如何将芹菜所有日志发送到自定义处理程序.在我的情况下python-logstash处理程序

在我的Celery应用程序中,我在控制台上获得了两种类型的日志,即celery应用程序日志和任务级别日志(内部任务我使用logger.INFO(str)语法进行日志记录) 我想将它们都发送到自定义处理程序(在我的例子中是python-logstash处理程序) 对于django日志我是成功的,通过在settings.py中设置

如何在django中更改celeryd的权限

我已经看到,当我通过普通用户执行celeryd然后我得到权限被拒绝错误 /opt/python2.7/bin/celeryd 但它与root用户一起执行 在文中它说 "Running celeryd with superuser privileges is not encouraged!") 如何为celeryd分配previle到user1解决方法:您可以通过在终端中运行以下命令

如何在Celery中捕获事件

我刚开始使用芹菜(更具体地说是django-celery),我仍然不熟悉它. 我正在开发一个应用程序,它将在工作人员中远程执行任务,每个任务大约需要3分钟才能完成. (不是繁重的处理,网络抓取的东西,但这是无关紧要的). 当我发送任务时,我得到一个可用于获取结果的引用. >>> result = task_n

python – django celery:update_state什么都没做

我正在为django-celery编写一个小测试任务,我想在其中设置一个自定义状态(和一些数据,但让我们先从自定义状态开始). 我使用django作为消息传递后端.我的python版本是2.6. 这是tasks.py的内容 import time from djcelery import celery @celery.task def generate(): generat

python – Django TimeLimitExceeded错误

今天我收到了来自Celery的错误邮件,有人可以解释一下,可能我如何解决超时问题?非常有帮助,谢谢. PS我的消息似乎已发送尽管有这个错误,是不是也是这样? 错误: Task Request to Process with id 65123935-b190-4718-9ed0-fb863359f27f raised exception: 'TimeLimitExceeded(300.0,)

python – Django芹菜任务没有完成,并一直保持待定

我安装了Django Celery bur运行pip install django-celery.这个安装的芹菜和必要的库,例如芹菜和海带. 我将djcelery添加到已安装的应用程序列表中,并运行syncdb和migrate命令来创建表. 我已经安装了RabbitMQ并使用以下命令创建了一个用户和vhost: rabbitmqctl add_user trakklr tr

如何每天早上6点和下午6点运行Django芹菜任务?

嗨,我的项目中有Django Celery.目前每天运行12小时(午夜/ 00:00和12:00 pm).但我希望它每天早上6点和下午6点运行.我怎样才能做到这一点?提前致谢. 任务: from celery.task import periodic_task from celery.schedules import crontab from xxx.views import update_xx_task, exe

python – 如何使用Ajax检查django-celery任务的状态和结果?

The Django Celery documentation建议我可以检查URL以获取任务的状态.这些网址是什么?解决方法:要访问这些URL,您需要从其中一个urls.py文件中包含它们.例如: urlpatterns = patterns('', url('^tasks/', include('djcelery.urls')), ) 然后,您可以使用例如http://example.com/

python – 什么是使用django芹菜和redis异步刮取并存储我的结果的正确方法并存储我的?

当我尝试使用我在django应用程序中创建的函数进行刮擦时,我一直在试图理解我的问题.该功能转到网站收集数据并将其存储在我的数据库中.起初我尝试使用rq和redis一段时间,但我不断收到错误消息.所以有人认为我应该尝试使用芹菜,我做到了.但我现在看到rq和芹菜都是问题所在.因为我收

python – 检测芹菜任务和所有子任务何时完成

我有一个父任务,将产生任意和可能大量的子任务.一旦父项和所有子任务都完成,我需要在我的数据库中设置一个标志,表明它已准备就绪.我最好怎么做呢? 例如: @task() def master_task(foo): foo_obj = Foo.objects.get(id=foo) for bar in foo_obj.bar_set.all(): more

python – 子类化芹菜任务

我正在编写很多非常相似的任务,并想知道如何更好地子类化Task以减少样板.因为一个任务只是一次实例化,所以你不能把事情放在__init__中,就像我在下面所示,但它应该说明这一点. 我想要完成的事情: class EmailTaskOne(Task): def run(self, object_id): email_data = Em