草庐IT

celery_log_dir

全部标签

python - Celery worker 进入无限启动和关闭循环

几年来,我一直在Django项目中使用celery(python中的异步任务队列)作为结果后端和代理-今天我尝试将后端/代理切换到AWS的ElastiCacheRedis,但是celeryworker进入无限的启动和关闭循环,如下面的日志文件所示。我还从运行celery的同一台机器成功连接到Redis实例,并成功完成了一些基本的SET和GET操作。我当前的设置是:操作系统:Ubuntu14.04python2.7.6celery3.1.17昆布3.0.37台球3.3.0.23命令:celeryworker--concurrency=3--queues=general--events--

django - celery 任务 .get() 不工作

我将非常感谢对此的帮助!这是我第一次尝试在Docker容器中将Celery与Django结合使用,经过数小时的阅读和试​​验,我无法解决这个问题。问题我可以从polls.task导入任务并使用.delay()运行它,如下所示:pythonmanage.pyshellfrompolls.tasksimportaddtask=add.delay(4,4)当我运行它时,我可以通过rabbitmq容器看到一条消息。如果我执行task.id,我可以获得任务id。但是,如果我运行task.get(),程序就会挂起。我没有看到对任何容器采取任何行动,也没有得到任何结果。我还注意到,当我运行dc-up

python - 在 celery 任务上调用 delay() 后,任务甚至需要 5 到 10 秒以上才能开始执行,以 redis 作为服务器

我有Redis作为我的缓存服务器。当我在一个任务上调用delay()时,甚至需要超过10个任务才能开始执行。知道如何减少这种不必要的滞后吗?我应该用RabbitMQ替换Redis吗? 最佳答案 如果不能检查您的应用程序和服务器日志,很难说延迟的原因是什么,但我可以向您保证,延迟是不正常的,不是Celery或使用Redis作为经纪人。我过去经常使用这种组合,任务的执行发生在几毫秒内。我首先要确保创建任务的客户端、代理(Redis)和任务使用者(celeryworker)之间没有网络相关问题。祝你好运!

python - Celery Worker 不执行 cassandra 查询

我在用celery==4.1.0(latentcall)[cqlsh5.0.1|Cassandra3.11.2|CQLspec3.4.4|Nativeprotocolv4]Python2.7.14我正在尝试在Celery辅助函数中执行Cassandra查询。但Celeryworker收到任务但没有执行Query。tasks.pyfromcassandra.clusterimportClusterfromceleryimportCeleryapp=Celery('',backend="rpc://",broker='redis://localhost:6379/0')dbSession=

redis - 将 Celery 任务直接插入 Redis

我有一个Erlang系统。我希望这个系统能够在另一个基于Python的系统上触发Celery任务。它们共享同一台主机,Celery使用Redis作为其代理。是否可以将Celery的任务直接插入Redis(在我的例子中,来自Erlang),而不是使用CeleryAPI? 最佳答案 是的,您可以将任务直接插入到redis或您使用celery的任何后端。您必须匹配celery序列化格式(默认情况下为JSON)并确定它要插入到哪些键。使用的key结构没有明确记录,但是thispart源代码是一个很好的起点。你也可以使用redismonito

amazon-web-services - AWS + Celery + ElastiCache(Redis 集群)错误 : CROSSSLOT Keys in request don't hash to the same slot

我有一个在AWS上运行的DockerizedCelery,它使用来自AWS的ElastiCache(具有多节点的Redis集群)作为消息代理,但我收到以下错误。当我在本地机器上测试我的Celeryworker时,它与单个节点Redis通信完全正常。我应该如何解决这个问题?[I18051818:54:20mixins:224]Connectedtoredis://....use1.cache.amazonaws.com:6379//[E18051818:54:20events:123]Failedtocaptureevents:'CROSSSLOTKeysinrequestdon'tha

python - 为什么 celery 任务不起作用?

在我的Django项目中,我需要定期运行celery任务。我使用Celery4+Redis。首先我运行redis-server,然后使用下一个命令:$celery-ATestProjectworker-linfo$celery-ATestProjectbeat-linfo第一个命令引发下一个错误:Thefullcontentsofthemessagebodywas:b'[[],{},{"errbacks":null,"chord":null,"chain":null,"callbacks":null}]'(77b)Traceback(mostrecentcalllast):File"/

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

redis - 为什么 zpopmin 的时间复杂度是 log n?

来自redis文档:ZPOPMIN键[计数]从5.0.0开始可用。时间复杂度:O(log(N)*M),其中N是已排序集合中的元素数,M是弹出的元素数。删除并返回count个存储在键中的排序集中得分最低的成员。所以,我的问题是,如果列表已排序,为什么它采用logn,为什么不是O(1)? 最佳答案 Ifthelistissorted,whyit'stakelogn,whynotO(1)?如果排序集是用列表实现的,您实际上可以在每个元素的O(1)时间内完成此操作。但是,排序集是implemented(部分)与skiplist数据结构,在O

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