草庐IT

celery_tasks

全部标签

python - Django-Celery:未创建 djkombu_queue 表

编辑2如果有人可以发布架构应该是什么,我会非常高兴!我只需要知道表名和列名!我正在学习本教程:http://www.caktusgroup.com/blog/2014/06/23/scheduling-tasks-celery/我已经成功地通过pip安装了django-celery。#settings.pyimportdjcelerydjcelery.setup_loader()BROKER_URL='django://'INSTALLED_APPS=('django.contrib.admin','django.contrib.auth','django.contrib.conten

python - celery - 链中的组

我想在链中使用一个组(或block),例如:chain(getRange.s(3),GROUP(),xsum.s())其中GROUP()是一组double()任务,即group(double(0),double(1),double(2))。HowtochainaCelerytaskthatreturnsalistintoagroup?中发布了类似的问题但它没有解释如何将输出从组传递到链中的下一个任务。@taskdefgetRange(x):returnrange(x)@taskdefdouble(nr):returnnr*2@taskdefxsum(list):returnsum(li

python - 使用 Python、Flask 和 Celery 的并发异步进程

我正在开发一个小型但计算密集型的Python应用程序。计算密集型工作可以分解成几个可以同时执行的部分。我正在尝试确定一个合适的堆栈来完成此任务。目前我计划在Apache2+WSGI上使用Flask应用程序和Celery作为任务队列。在下面,如果有3个或更多worker可用,a_long_process()、another_long_process()和yet_another_long_process()是否会同时执行?Flask应用程序会在进程执行时被阻塞吗?来自Flask应用:@myapp.route('/foo')defbar():task_1=a_long_process.del

python - 如果其中一项任务失败,Celery 链就会中断

如果其中一项任务失败导致整个链断裂,Celery链还有什么意义?!!我有这个Celery链:res=chain(workme.s(y=1111),workme2.s(2222),workme3.s(3333),)()我让workme2像这样重试失败了:@celery.task(default_retry_delay=5,max_retries=10,queue="sure")defworkme2(x,y):#try:try:printstr(y)sleep(2)printstr(x)##addinganyconditionthatmakesthetaskfailifx!=None:ra

Celery 任务中每个查询的 Python cassandra-driver OperationTimeOut

我在celery任务中异步执行的每个插入查询(小查询)都有问题。在同步模式下,当我插入时一切都很好,但是当它在apply_async()中执行时,我得到这个:OperationTimedOut('errors=errors=errors={},last_host=***.***.*.***,last_host=None,last_host=None',)回溯:Traceback(mostrecentcalllast):File"/var/nfs_www/***/env_v0/local/lib/python2.7/site-packages/celery/app/trace.py",l

python - celery 任务不会在 Django 测试中抛出异常

我的Django测试中包含几个celery任务。不幸的是,通过.delay()调用任务时不会抛出异常。我正在设置CELERY_ALWAYS_EAGER为真。tasks.pyimportceleryappasapp@app.task()defexception_task():print'CELERY_ALWAYS_EAGER:',app.conf['CELERY_ALWAYS_EAGER']raiseException('foo')测试.pydeftest_exception_in_task(self):fromtasksimportexception_taskexception_tas

python - 区分celery、kombu、PyAMQP和RabbitMQ/ironMQ

我想将图像上传到S3服务器,但在上传之前我想生成3种不同大小的缩略图,我希望它在请求/响应周期之外完成,因此我使用的是celery。我已经阅读了文档,这是我的理解。如果我错了,请纠正我。Celery可帮助您在请求响应周期之外管理任务队列。还有一个叫做carrot/kombu的东西——它是一个django中间件,用于打包通过celery创建的任务。然后是第三层PyAMQP,它促进了胡萝卜与代理的通信。例如。RabbitMQ、AmazonSQS、ironMQ等经纪人位于不同的服务器上并为您做事。现在我的理解是-如果多个用户同时上传图片,celery会将调整大小排队,并且实际上会在ironM

python - celery 中@task装饰器之后的装饰器

我正在尝试在celery@task装饰器之后应用一个装饰器,例如。@send_email@taskdefany_function():print"insidethefunction"我可以按照文档中推荐的方式让它工作,即将装饰器放在任务装饰器之前,但在这种情况下,我想在我的装饰器中访问任务实例。@send_email必须是类装饰器,这是我尝试但没有成功的方法:classsend_email(object):'''wrapsaTaskceleryclass'''def__init__(self,obj):self.wrapped_obj=objfunctools.update_wrapp

python - 带有redis的 celery 中的任务优先级

我想用celery实现一个分布式作业执行系统。鉴于rabbitMQ不支持优先级,而我非常需要这个功能,我转向了celery+redis。在我的情况下,任务与硬件密切相关,例如,任务A只能在Worker1上运行,因为只有Worker1的PC有必要的硬件。我将每个worker的CONCURRENCY设置为1,这样一个worker每次只会运行一个任务。每个任务大约需要2分钟。为了实现优先级功能,首先我尝试在调用apply_async()时添加priority参数,例如apply_async(priority=0)和apply_async(priority=9)。在这个测试中,我只启动了一个C

python - 测量 Celery 任务执行时间

我已经将一个独立的批处理作业转换为使用celery来分派(dispatch)要完成的工作。我正在使用RabbitMQ。一切都在一台机器上运行,没有其他进程正在使用RabbitMQ实例。我的脚本只是创建了一堆由工作人员处理的任务。有没有一种简单的方法可以测量从我的脚本开始到所有任务完成的时间?我知道在使用消息队列时这在设计上有点复杂。但我不想在生产中这样做,只是为了测试和获得性能评估。 最佳答案 你可以使用celerysignals,注册的函数将在任务执行前后调用,测量耗时很简单:fromtimeimporttimefromceler