jjzjj

python - 从 Celery 中搜索并有选择地删除任务

我想清理我的celery队列。我如何通过类型参数搜索任务并有选择地删除其中的一些?如果重要的话,我正在使用Redis作为代理;不过,我宁愿不在Redis级别处理这个问题。 最佳答案 我在这里看到的唯一选择是直接使用Kombu编码Celery用作AMQP的库是一个可以以抽象方式与所有受支持的代理(包括Redis)对话的库。无论如何,我会劝阻这种做法,因为清理队列的需要通常是糟糕设计的结果。问候 关于python-从Celery中搜索并有选择地删除任务,我们在StackOverflow上找到

python - 安装具有依赖项的 python 包时如何在 PIP 上指定版本

这个问题在这里已经有了答案:Installingspecificpackageversionwithpip(12个答案)关闭7年前。要安装Celery及其redis依赖项,可以这样做。$pipinstallcelery[redis]是否可以在上述命令中显式地为celery和redis提供版本号?它实际上与以下两个命令相同$pipinstall-Ivredis==2.10.3$pipinstall-Ivcelery==3.1.18

python - 最大客户数达到 celery

我正在将django与celery和redis一起使用。我不断收到此错误redis.exceptions:ResponseError已达到最大客户端数我正在使用heroku,我的redis后端的最大连接数为400。我为主应用程序运行20个测功机,而对于celery,我运行5个测功机。如何设置最大连接数?我试过像这样把它放在我的celery.py中:from__future__importabsolute_importimportosfromceleryimportCelery#setthedefaultDjangosettingsmoduleforthe'celery'program.

python - 如何将 TemporaryUploadedFile 传递给 celery 任务?

我有一个代码:defpost(self,request,*args,**kwargs):file=request.FILES["import_file"]#createatastwithceleryandsaveIDofthetasktask_id=importing.delay(file).idreturnResponse({"task_id":task_id},content_type="application/json")当type(file)为TemporaryUploadedFile时出现错误,因为文件无法写入redis。我可以取这个临时文件的名称并将这个名称保存到Redis

python - 我的 celery redis 任务在 heroku 服务器上的 django 应用程序中不起作用

我有一个任务在我的本地服务器上运行良好,但是当我将它推送到Heroku时,没有任何反应。没有错误消息。在这方面我是个新手,在本地我会通过做celeryworker-Ablog-linfo.所以我猜问题可能与此有关。因为我不知道该怎么做。我怀疑我是否应该在我的应用程序中这样做。这是我的代码celery.pyimportosfromceleryimportCeleryfromdjango.confimportsettings#setthedefaultDjangosettingsmoduleforthe'celery'program.os.environ.setdefault('DJANG

python - celery 恢复从队列中消费

我有不同的celery队列,在某个时候我希望工作人员停止从我的队列中消费celery_app.control.cancel_consumer(consumer_queue)一段时间后我希望能够恢复消费者,我用下一个命令来做到这一点celery.control.add_consumer(consumer_queue,routing_key=consumer_queue,destination=['worker-name'],)此时我预计worker-name将从consumer_queue获取任务,我的自定义路由器通过routing_key重定向。但是我从celery检查中得到了这个输出

python - 了解 celery 工作节点

我想在这里了解celery和AMQP的工作原理。我的场景我在我的机器上安装了celerypipinstallcelery我用做任务fromceleryimportCeleryapp=Celery('tasks',backend='amqp',broker='amqp://')@app.taskdefprint_hello():print'hellothere'据我了解,celery将此任务转换为消息并通过AMQP协议(protocol)发送给代理(redis或rabbitmq)。然后将这些消息排队并传递给工作节点以处理消息。我的问题是,假设我在Java环境中创建任务,如果消息被发送到外

django - 让用户创建 celery 周期性任务

想请教一下在djangoapp中celery和redis的使用。我正在学习celery大约2天,但我仍然有点困惑:/我已经安装了celery和redis,并且工作正常。我的问题是,我希望用户创建、更新和暂停周期性任务。我读过这篇文章-http://kindshofer.net/2016/11/19/dynamically_adding_a_periodic_task_to_celery.html这个问题-Howtodynamicallyadd/removeperiodictaskstoCelery(celerybeat)一大堆其他文章,但不如这两篇文章有用),看来我需要使用django

django - 在 Celery 中检索任务的结果

我的Django应用程序中有一个长时间运行的任务,我想显示一个进度条,然后在完成时将任务结果输出给用户。我很容易找到如何启动任务并通过消息传递生成进度条,但是如何在任务完成后从任务中检索结果并将这些结果显示给用户?使用Redis作为我的消息代理。 最佳答案 您需要在Celery中设置结果后端。单独的django-celery-results库会将Django模型配置为结果后端,您可以从那里获取结果。 关于django-在Celery中检索任务的结果,我们在StackOverflow上找到

redis - 使用 docker swarm 在多节点 Python celery 应用程序中使用 Redis 队列

所以这或多或少是一个理论问题。假设我们有一个由3个节点组成的多节点Swarm。现在我们已经安装了一个使用Celery和Redis作为消息代理的Python服务。所以基本上还有一个3节点副本redis服务作为应用程序的一部分。现在,由于此Redis服务充当消息代理,如果我们仅使用服务名称在我的Python应用程序中进行DNS解析,那么dockerswarm或我的应用程序如何知道哪个redis节点将执行我放置的任务队列?我的意思是路由网格只会在任何一个具有该服务的节点上引导特定服务的流量。现在我的Python应用程序异步启动了一个任务并将其放入redis队列中。所以一旦完成,我希望我的应用