草庐IT

celery_worker

全部标签

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

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

node.js - 我如何使用 Redis 在 Node worker 之间共享缓存?

如果这是一个非常愚蠢的问题,请原谅我。在过去的一个小时里,我一直在谷歌搜索,但似乎在任何地方都找不到答案。我们的应用程序需要每隔一小时左右查询一次CMS数据库,以更新所有非用户特定的CMS内容。我想将该数据存储在一个地方并让所有工作人员都可以访问它-每个工作人员都必须每小时调用一次API。我也希望这个缓存在Node工作程序崩溃的情况下持续存在。由于我们对这里的Node还很陌生,我预测我们可能会有一些。我会处理所有的缓存过期逻辑。我只想要一个可以在用户之间共享的商店,可以处理工作人员崩溃和重新启动,并且在应用程序级别-而不是用户级别。所以用户session对此没有好处。Redis是我正在

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