草庐IT

celery-log

全部标签

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

logging - Sidekiq 记录 Redis 查询

我正在尝试在低级别调试sidekiq。为了做到这一点,我希望记录所有查询。Redis客户端记录器可以通过以下方式启用:redis.client.logger=Logger.new(STDOUT)redis.set('a','b')结果:D,[2014-05-13T11:35:34.787624#46689]DEBUG--:Redis>>SETabD,[2014-05-13T11:35:34.788274#46689]DEBUG--:Redis>>0.27ms它似乎适用于所有使用redis-rb的库。但对于sidekiq则不行,因为无法直接访问Redis::Client对象。如何为sid

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