我在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
现在django-sentry已经成为一个独立的服务器(而且非常棒)我正在尝试移植我的应用程序以使用它。我已经设置了一个配置了django应用程序的独立服务器tologusingdjango1.3'sloggingdictionaryconfaspertheravendocs.我似乎无法让任何celery任务登录到Sentry服务器(尽管它们确实被打印到控制台)。我不确定我应该做什么?我在我的`INSTALLED_APPS'中包含了raven.contrib.django.celery。未捕获的异常被发送到Sentry,自定义日志消息也是通过:importlogginglogger=l
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
我是airflow和celery的新手,我现在已经画完了dag,但是我想在同一子网的两台电脑上运行任务,我想知道如何修改airflow.cfg。一些例子可能会更好。感谢任何答案orz。 最佳答案 Airflowdocumentation很好地涵盖了这一点:首先,您需要一个celery后端。这可以是例如Redis或RabbitMQ。然后,您的airflow.cfg中的执行器参数应设置为CeleryExecutor。然后,在airflow.cfg的celery部分,将broker_url设置为指向您的celery后端(例如redis:/
我在我正在处理的Django项目中设置了Celery。我想将celery任务的日志记录与其余的celery日志(celerycam、celerybeat等)分开。根据Celery文档(http://docs.celeryproject.org/en/latest/userguide/tasks.html#logging),我似乎应该能够为“celery.task”定义一个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
我用redisbroker添加了一些错误的task到celery但现在我想删除不正确的任务,但我找不到任何方法来做到这一点是否有一些命令或一些api可以执行此操作? 最佳答案 我知道有两种方法:1)直接从代理删除队列。在您的情况下,它是Redis。有两个命令可以帮助您:llen(找到正确的队列)和del(删除它)。2)使用--purge或--discard选项启动celeryworker。这是帮助:--purge,--discardPurgesallwaitingtasksbeforethedaemonisstarted.**WAR
我需要通过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
如果我使用timedelta(days=1)创建一个celerybeat时间表,第一个任务将在24小时后执行,引用celerybeat文档:Usingatimedeltafortheschedulemeansthetaskwillbesentin30secondintervals(thefirsttaskwillbesent30secondsaftercelerybeatstarts,andthenevery30secondsafterthelastrun).但事实是,在很多情况下,调度程序在启动时运行任务实际上很重要,但我没有找到允许我在celery启动后立即运行任务的选项,我不是在
我正在使用Django1.6、RabbitMQ3.5.6、celery3.1.19。有一个周期性任务每30秒运行一次,并使用给定的eta参数创建200个任务。在我运行celeryworker之后,队列在RabbitMQ中慢慢创建,我看到大约1200个计划任务等待被触发。然后,我重新启动celeryworker,所有等待的1200个计划任务都从RabbitMQ中删除。我如何创建任务:my_task.apply_async((arg1,arg2),eta=my_object.time_in_future)我这样运行worker:pythonmanage.pyceleryworker-Qmy