草庐IT

celery_worker

全部标签

ubuntu - 配置 Celery 以通过 Unix 套接字与 Redis 通信

我希望Celery在Redis而不是默认的RabbitMQ上构建。Celerydocumentation解释:Configurationiseasy,justconfigurethelocationofyourRedisdatabase:BROKER_URL='redis://localhost:6379/0'WheretheURLisintheformatof:redis://:password@hostname:port/db_numberallfieldsaftertheschemeareoptional,andwilldefaulttolocalhostonport6379,u

python - 在 Python 中设置 celery 任务后端的麻烦

我遵循了[http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html]中给出的所有步骤这是代码:from__future__importabsolute_importfromceleryimportCelery#app=Celery('tasks',broker='pyamqp://guest@localhost//')app=Celery('tasks',backend='redis://localhost',broker='pyamqp://guest@localhost/

redis - Python Reddis 队列值错误 : Functions from the __main__ module cannot be processed by workers

我正在尝试使用python-rq在redis中加入一个基本的作业,但是它抛出了这个错误"ValueError:Functionsfromthemainmodulecannotbeprocessedbyworkers"这是我的程序:importrequestsdefcount_words_at_url(url):resp=requests.get(url)returnlen(resp.text.split())fromrqimportConnection,QueuefromredisimportRedisredis_conn=Redis()q=Queue(connection=redis

python - celery 、Redis 和连接池

我最近在使用Celery和Redis时遇到了问题:我使用了过多的连接到我的云Redis帐户。我现在似乎已经通过更好的设置和更大的Redis计划解决了这个问题。但是,它引导我对Redis和Celery如何协同工作进行了一些实验,并且有一些我不明白的东西:由PythonRedis模块创建的RedisConnectionPool的数量。我将Celery配置为使用Redis作为代理和结果后端。这是我的celery配置:CELERY_TIMEZONE='Europe/Paris'CELERY_BROKER_URL=REDIS_URLCELERY_RESULT_BACKEND=REDIS_URLC

python - Django、 celery 、Redis、RabbitMQ : Chained Tasks for Fanout-On-Writes

我一直在看RickBranson的PyCon视频:MessagingatScaleatInstagram.您可能想观看视频来回答这个问题。RickBranson使用Celery、Redis和RabbitMQ。为了让你跟上速度,每个用户都有一个redis列表作为他们的主页。每个列表都包含他们关注的人发布的照片​​的媒体ID。例如,贾斯汀比伯拥有150万粉丝。当他发布一张照片时,该照片的ID需要插入到他的每个关注者的每个单独的redis列表中。这称为Fanout-On-Write方法。但是,这种方法存在一些可靠性问题。它可以工作,但对于像JustinBieber或LadyGaga这样拥有数

ruby-on-rails - 每个 sidekiq worker 有多种方法

我不明白。根据Sidekiq文档,每个worker(我的称为FeedWorker)只能包含一个名为perform的方法。那么,如果我想通过同一个worker运行多个方法怎么办?例如,我的FeedWorker(您猜对了,它处理事件提要)应该运行以下3个方法:announce_fooannounce_barinvite_to_foo我不认为这是一个不合理的期望。我相信其他人已经考虑过这一点。我不是天才,但我知道我并没有在这里开辟新的期望。然而,目前尚不清楚如何做到这一点。现在,看起来我必须这样编码:defperform(id,TYPE)ifTYPE==BARBar.find(id)and_

ruby-on-rails - 如何检查 Resque worker 状态以确定它是死的还是陈旧的

默认的resque网络界面显示我有7个工作人员中的5个在工作。我不明白这怎么会发生。我在heroku上,所以当我的dyno重新启动时,它应该停止现有的dynos和worker,然后启动新的。所以,我假设其中一些worker已经过时了,但resque认为工作的worker比应该有的要多得多......(应该只有1个)我如何检查其中的任何一个是陈旧的还是死的?我预计只有1名worker在工作。最终,我希望我会按照这篇SO帖子所说的去做:HowdoIclearstuck/staleResqueworkers?,但首先我想知道如何确定是否应删除worker...我不想盲目地注销worker..

ruby-on-rails - 我如何清除卡住/陈旧的 Resque worker ?

正如您从所附图片中看到的那样,我有几个工作人员似乎被卡住了。这些过程不应超过几秒钟。我不确定为什么它们不会清除或如何手动删除它们。我在Heroku上使用Resque与Redis-to-Go和HireFire来自动扩展工作人员。 最佳答案 这些解决方案都不适合我,我仍然会在redis-web中看到它:0outof10WorkersWorking最后,这对我清除所有工作人员很有用:Resque.workers.each{|w|w.unregister_worker} 关于ruby-on-ra

python - 如何在没有 -A 选项的情况下运行 celery status/flower?

考虑一下这个bashsession:$exportDJANGO_SETTINGS_MODULE=web.settings$celerystatus-bredis://redis.businessoptics.dev:6379/1-t10Error:Nonodesrepliedwithintimeconstraint.$celerystatus-bredis://redis.businessoptics.dev:6379/1-t10-Ascaffold.tasks.celery_appcelery@worker.9e2c39a1c42c:OK为什么我需要-A选项?据我所知,celery应

python - 如何在没有 -A 选项的情况下运行 celery status/flower?

考虑一下这个bashsession:$exportDJANGO_SETTINGS_MODULE=web.settings$celerystatus-bredis://redis.businessoptics.dev:6379/1-t10Error:Nonodesrepliedwithintimeconstraint.$celerystatus-bredis://redis.businessoptics.dev:6379/1-t10-Ascaffold.tasks.celery_appcelery@worker.9e2c39a1c42c:OK为什么我需要-A选项?据我所知,celery应