草庐IT

CELERY_ALWAYS_EAGER

全部标签

python - celery store 在什么时候产生结果?

我在Django网络应用程序中使用celery+redis执行任务。问题是我不知道celery在什么时候将它的任务结果作为JSON对象存储到数据库中。之后出现一个问题,因为它不能将np数组存储为JSON。importnumpyasnpfromscipy.sparseimportdok_matrix@shared_task(name="run_shortest_path_on_warehouse")defrun_shortest_path_on_warehouse(adjacency_matrix):sparse_matrix=dok_matrix(adjacency_matrix)di

django - Celery 和 Celerybeat 正在运行,但不运行任务

我已经在本地服务器上检查了我的代码,我确信我的代码一切正常。所以服务器配置似乎有问题。我有一个linux服务器(Ubuntu16.04)并安装了nginx、redis……我还为celery和celerybeat创建了配置文件,如下所示:/etc/init.d/celeryd/etc/default/celeryd/etc/init.d/celerybeat/etc/default/celerybeat我检查了它们的状态,它们都在运行,但是当我检查beat.log时,它什么也没做,只显示“正在启动...”celery文件:#NamesofnodestostartCELERYD_NODES

django - celery 调度错误: an integer is required

我在Heroku上使用Celery,Redis作为我的代理。我也尝试过将RabbitMQ作为代理,但在尝试运行计划任务时不断出现以下错误:Traceback(mostrecentcalllast):File"/app/.heroku/python/lib/python2.7/site-packages/celery/beat.py",line203,inmaybe_dueresult=self.apply_async(entry,publisher=publisher)File"/app/.heroku/python/lib/python2.7/site-packages/celery

django - 如何找出 Celery 设置中缺少的内容?

对于我们的一个Django网站,我们需要运行Celery。我们在settings.py中对Celery使用以下设置:BROKER_URL="redis://:6379/0"CELERY_RESULT_BACKEND="redis"CELERY_REDIS_HOST=""CELERY_REDIS_PORT=6379CELERY_REDIS_DB=0Redis正常运行:$redis-clipingPONG我们用这个命令启动Celery服务器:$nohuppythonmanage.pycelerydstart我们还有一个带有Celery任务的测试应用程序,但是当我们尝试使用它时,结果从未给出

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

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

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环境中创建任务,如果消息被发送到外