草庐IT

celery_worker

全部标签

python - 通知 worker 关闭的 celery 任务

我将celery2.4.1与python2.6、rabbitmq后端和django一起使用。如果工作人员关闭,我希望我的任务能够正确清理。据我所知,您无法提供任务析构函数,因此我尝试连接到worker_shutdown信号。备注:AbortableTask仅适用于数据库后端,所以我不能使用它。fromcelery.signalsimportworker_shutdown@taskdefmytask(*args)obj=DoStuff()defshutdown_hook(*args):print"Workershuttingdown"#cleanupnicelyobj.stop()wor

python - Heroku 上的 Django Celery 任务导致内存使用率过高

我在Heroku上有一个celery任务,它连接到外部API并检索一些数据,存储在数据库中并重复数百次。很快(大约10次循环后)Heroku开始警告内存使用率过高。有什么想法吗?tasks.py@app.taskdefretrieve_details():forpinPObj.objects.filter(some_condition=True):p.fetch()模型.pydeffetch(self):v_data=self.service.getV(**dict(Number=self.v.number))response=self.map_response(v_data)fork

python - 在 gunicorn workers 之间共享一把锁

有没有一种在gunicornworkers之间共享多处理锁的好方法?我正在尝试用Flask编写一个jsonAPI。一些API调用将与管理正在运行的进程的python类交互(如用于视频转换的ffmpeg)。当我将WebWorker的数量扩大到1个以上时,如何确保只有1个Worker同时与类(class)互动?我最初的想法是使用multiprocessing.Lock以便start()函数可以是原子的。我认为我没有找到创建锁的正确位置,以便所有工作人员共享一个锁:#runserver.pyfromflaskimportFlaskfromwerkzeug.contrib.fixersimpo

python - Sentry 、乌鸦和 Django celery

现在django-sentry已经成为一个独立的服务器(而且非常棒)我正在尝试移植我的应用程序以使用它。我已经设置了一个配置了django应用程序的独立服务器tologusingdjango1.3'sloggingdictionaryconfaspertheravendocs.我似乎无法让任何celery任务登录到Sentry服务器(尽管它们确实被打印到控制台)。我不确定我应该做什么?我在我的`INSTALLED_APPS'中包含了raven.contrib.django.celery。未捕获的异常被发送到Sentry,自定义日志消息也是通过:importlogginglogger=l

python - 注册基于 Celery 类的任务

Python3.x,celery4.x...我有一个基于类的任务。myproj/celery.pyfromceleryimportCelery#djangosettingsstuff...app=Celery('myproj')app.autodiscover_tasks()app1/tasks.pyimportceleryclassEmailTask(celery.Task):defrun(self,*args,**kwargs):self.do_something()如果我这样做:$celeryworker-Amyproj-linfo[tasks].app2.tasks.debug

python - 如何在 celery 中使用 Airflow

我是airflow和celery的新手,我现在已经画完了dag,但是我想在同一子网的两台电脑上运行任务,我想知道如何修改airflow.cfg。一些例子可能会更好。感谢任何答案orz。 最佳答案 Airflowdocumentation很好地涵盖了这一点:首先,您需要一个celery后端。这可以是例如Redis或RabbitMQ。然后,您的airflow.cfg中的执行器参数应设置为CeleryExecutor。然后,在airflow.cfg的celery部分,将broker_url设置为指向您的celery后端(例如redis:/

python - Django Celery 任务记录

我在我正在处理的Django项目中设置了Celery。我想将celery任务的日志记录与其余的celery日志(celerycam、celerybeat等)分开。根据Celery文档(http://docs.celeryproject.org/en/latest/userguide/tasks.html#logging),我似乎应该能够为“celery.task”定义一个Django记录器,它应该执行此操作。但是,当我这样做时,日志中没有显示任何内容。如果我创建一个通用的“celery”记录器,一切都会显示出来,这意味着这可能与记录器的名称有关。我在这里错过了什么?有什么办法可以做到这

python - 如何禁用 Django Celery 管理模块?

我不需要我的Django管理中的celery模块。有什么方法可以删除它吗? 最佳答案 更具体地说,在INSTALLED_APPSafter'djcelery'内的任何应用程序的admin.py中/p>fromdjango.contribimportadminfromdjcelery.modelsimport(TaskState,WorkerState,PeriodicTask,IntervalSchedule,CrontabSchedule)admin.site.unregister(TaskState)admin.site.unr

python - 如何使用 redis 代理从 celery 中删除任务?

我用redisbroker添加了一些错误的task到celery但现在我想删除不正确的任务,但我找不到任何方法来做到这一点是否有一些命令或一些api可以执行此操作? 最佳答案 我知道有两种方法:1)直接从代理删除队列。在您的情况下,它是Redis。有两个命令可以帮助您:llen(找到正确的队列)和del(删除它)。2)使用--purge或--discard选项启动celeryworker。这是帮助:--purge,--discardPurgesallwaitingtasksbeforethedaemonisstarted.**WAR

python - celery 按顺序链接任务

我需要通过ftp下载一个文件,修改它然后上传回来。我正在使用celery来执行此操作,但是在尝试使用链接时遇到了问题,我得到了:TypeError:upload_ftp_image()takesexactly5arguments(6given)此外,我可以使用链并确保步骤是连续的吗?如果不是,还有什么选择?res=chain(download_ftp_image.s(server,username,password,"/test_app_2/model.dae","tmp/test_app_2/"),upload_ftp_image.s(server,username,password