草庐IT

celery_state

全部标签

python - RabbitMQ 或 Redis 使用 Django 2.0 扩展 Celery 队列

我在使用celery和Django2时遇到问题。我有两个运行环境:生产:requirements.txt=>没问题amqp==2.2.2django==1.11.6celery==4.1.0django-celery-beat==1.0.1django-celery-monitor==1.1.2海带==4.1.0redis==2.10.6开发:requirements.txt=>发行礼物amqp==2.2.2django==2.0.3celery==4.1.0django-celery-beat==1.1.1django-celery-monitor==1.1.2海带==4.1.0re

python - 为什么 Celery 对 Redis 代理使用轮询?

根据itsdocumentationontheintervaloption当使用Redis后端时,Celery轮询结果,默认使用0.5秒的间隔。天真的开发人员可能认为任何使用Redis的排队系统至少会尝试利用其LIST或PUBSUB机制。为什么Celery不这样做而是依赖于轮询?例如,当通过Celeryworker运行时,以下代码在r.get()调用上花费了恰好0.5秒(这是默认的轮询间隔):fromceleryimportCeleryapp=Celery('tasks',broker='redis://localhost:6379/0',backend="redis://localh

django - 凯拉斯预测 celery 任务不归队

同步调用时,遵循Keras函数(预测)工作pred=model.predict(x)但是当从异步任务队列(Celery)中调用时,它不起作用。Keras预测函数在异步调用时不会返回任何输出。堆栈是:Django,Celery,Redis,Keras,TensorFlow 最佳答案 我碰到了这个完全相同的问题,而那家伙真是个兔子洞。想要在这里发布我的解决方案,因为这可能会节省某人一天的工作:TensorFlow特定于线程的数据结构在TensorFlow中,当您调用model.predict(或keras.models.load_mod

Django 和 celery : admin task list does not display values

我的问题应该相当简单,与其说是需要拼命解决的问题,不如说是一个有趣的问题。Google无法提供我正在寻找的答案,因此我希望您的专业知识可以帮助我。我正在使用:Django1.4Celery2.5.5Redis2.4.10(latestversiononhomebrew?)我正在使用以下命令运行所有内容:redis-server/usr/local/etc/redis.confforemanrunpythonmanage.pyrunserverforemanrun"pythonmanage.pyceleryd-E-B--loglevel=INFO"foremanrunpythonmana

python - Celery:访问链中的所有先前结果

所以基本上我有一个相当复杂的工作流程,看起来类似于:>>>res=(add.si(2,2)|add.s(4)|add.s(8))()>>>res.get()16之后,沿着结果链向上走并收集所有单独的结果对我来说是相当微不足道的:>>>res.parent.get()8>>>res.parent.parent.get()4我的问题是,如果我的第三个任务取决于知道第一个任务的结果,但在这个例子中只收到第二个任务的结果怎么办?此外,链条很长,结果也不是那么小,因此仅将输入作为结果传递会不必要地污染结果存储。这是Redis,因此使用RabbitMQ、ZeroMQ时的限制不适用。

python - celery 通过对等方重置连接

我使用以下步骤设置了rabbitmqserver并添加了用户:uruddarraju@*******:/usr/lib/rabbitmq/lib/rabbitmq_server-3.2.3$sudorabbitmqctllist_usersListingusers...guest[administrator]phantom[administrator]phantom1[]sudorabbitmqctlset_permissions-pphantomphantom1".*"".*"".*"uruddarraju@******:/usr/lib/rabbitmq/lib/rabbitmq_

python - 由于回复 pidboxes,Redis 在用作 Celery 代理时会占用大量内存

我们正在运行以Redis作为代理后端的celery3.1.8。我们的配置非常简单,我们不关心结果,为此我们设置CELERY_IGNORE_RESULT=True但是我们注意到,我们的Redis代理实例占用大量内存(~3GB),而其中的队列和消息的实际数量在任何给定时刻都非常小。检查RDB文件后,我们注意到有几个巨大的列表:database,type,key,size_in_bytes,encoding,num_elements,len_largest_element0,list,"ed2d26b5-b8fb-3478-ace7-6714e8a7b4ed.reply.celery.pid

redis - 在 celery 中,如何确保在工作人员崩溃时重试任务

首先请不要将此问题视为thisquestion的重复我设置了一个使用celery和redis作为broker和result_backend的环境。我的问题是如何确保当celeryworker崩溃时,所有计划的任务都会在celeryworker恢复时重新尝试。我看到了关于使用CELERY_ACKS_LATE=True的建议,这样代理将重新驱动任务直到它获得ACK,但在我的情况下它不起作用。每当我安排一项任务时,它会立即转到工作人员,该工作人员将其坚持到预定的执行时间。让我举个例子:我正在安排这样的任务:res=test_task.apply_async(countdown=600),但是

python - Celery/Redis 同一任务并行执行多次

我有2个自定义任务(TaskA和TaskB),它们都继承自celery.Task。调度程序时不时地启动TaskA,TaskA每次都启动N次TaskB,参数不同。但出于某种原因,有时具有相同参数的相同TaskB同时执行两次,这会导致数据库出现不同的问题。classTaskA(celery.Task):defrun(self,*args,**kwargs):objects=MyModel.objects.filter(processed=False)\.values_list('id',flat=True)task_b=TaskB()foroinobjects:o.apply_async(

python - Redis 和 Celery 的奇怪错误

我的一位Celery工作人员出现以下错误:2015-07-21T15:02:04.010066+00:00app[worker.1]:Traceback(mostrecentcalllast):2015-07-21T15:02:04.010069+00:00app[worker.1]:File"/app/.heroku/python/lib/python2.7/site-packages/celery/app/trace.py",line296,intrace_task2015-07-21T15:02:04.010070+00:00app[worker.1]:on_chord_part