草庐IT

celery_worker

全部标签

redis - Capistrano Resque 与一名生产 worker

我真的很困惑如何让Resque和resque_mailer在我的生产服务器上工作。当我执行capdeploy时,我需要做的是通过Capistrano运行/重新启动一个称为“邮件程序”的工作人员。我看过这个gist但我就是不明白。有没有其他东西可以分解它来解释它在做什么。还是有更简单的解决方案来使它正常工作?我已经让Redis正常工作,因为我已经将它用于其他任务。我的生产服务器如下:Ubuntu、Apache、Passenger、Ruby2.0、Rails4.0 最佳答案 最后我用的是Sidekiq。文档要好得多,而且可以正常工作!

django - apply_async 后 Celery chord 不释放 redis pubsub channel

我正在从我的django应用程序中的celery启动一个chord以响应请求。和弦正确执行,但django从未发布pub-subchannel。杀死django服务器释放channel,然后它从redis-clipubsubchannels中消失。celery4.1.1或4.2.0rc4Redis4.0.9python2.7.15在本地运行,1个celeryworker,1个api服务器在这种情况下结果并不重要(但文档说不要忽略它们)完整示例项目位于:https://github.com/awbacker/celerychord-issue点击/api/start/并在运行celery

redis - django-celery celerybeat 周期性任务每 5 秒运行一次,与间隔无关

我以前从未遇到过这个问题,尽管有一些项目使用了celerybeat和django-celery。我在后端使用了redis。出于某种原因,周期性任务每5秒运行一次,无论间隔设置为何。我知道节拍调度程序实际上会查看django-celery调度程序,因为当我禁用该任务时,它会停止运行。但是,无论我将其设置为每3小时运行一次...还是每5分钟运行一次...任务都会继续每5秒运行一次。有什么问题吗? 最佳答案 显然这是celery团队正在解决的一个新问题。https://github.com/celery/celery/issues/943

redis - 如果 celery (显然)随机忘记任务,我该怎么办?

我有一个带有sqlalchemy的flask应用程序和一个正在运行的celeryworker。我使用redis作为我的经纪人。每次有人在对话中提交新消息时,都会启动一个worker并向所有参与对话的人发送通知邮件。因此它连接到数据库并获取所有相关的电子邮件地址。不幸的是,似乎有一个随机因素决定,celery是否知道发送邮件的任务。在一些启动后它完美地工作(有时),在一些启动后它根本不工作。当它不起作用时,我得到的错误是:[2012-11-2821:42:58,751:ERROR/MainProcess]Receivedunregisteredtaskoftype'messages.se

Django celery 先进先出

所以我将这2个应用程序与RESTAPI(json消息)连接起来。一个用Django编写,另一个用Php编写。我在两边都有一个精确的数据库副本(使用mysql)。当我在其中一个上按下“提交”时,我希望将该数据保存在当前应用程序数据库中,并使用celery/redis启动cron作业以使用rest为另一个应用程序更新远程数据库。我的问题是,我如何将同一个工作人员分配给我的任务以保持FIFO顺序?我需要我的数据保持一致,FIFO非常重要。好的,我将进一步详细说明我想做的事情:所以我有这个Django应用程序,当我在填写表格后按下提交时,我的celeryworker醒来并负责获取提交的数据并发

ruby - resque 被 worker job 阻塞

我正在使用带有resqueworker的redispub/sub,resque在第一份工作后挂起,我的worker任务是阻塞性质的。我的理解是resque为每个新工作创建一个新线程。我的worker如下classSendInvitation@queue=:outbound_dialerdefself.perform(contact_type,contact_no,invitation_audio_file)@invitationManager=DRbObject.new_with_uri(DRB_SERVER_URL)task_id=@invitationManager.send_in

redis - Celery 未连接到 Redis 代理 : Connection to broker lost

我正在尝试让Redis充当我在Django上安装的Celery3.0.19的代理。我看到redis-server正在端口6379上运行。当我运行一个简单的Celery测试时,我得到以下堆栈跟踪:UbuntuLucid10.0.4Celery3.0.19celery-Atasksworker--loglevel=info[2013-05-0218:56:27,835:INFO/MainProcess]consumer:Connectedtoredis://127.0.0.1:6379/0.[2013-05-0218:56:27,835:ERROR/MainProcess]consumer

ruby-on-rails - 我可以从 Rails worker 或 controller 创建 sidekiq 队列吗?

有没有办法从worker或controller动态创建一个sidekiq队列?我在我正在构建的网络应用程序上有用户。他们运行后台作业。我希望能够为每个用户设置一个队列。所以队列的数量是可变的。我可以这样做吗? 最佳答案 不,您不能在启动sidekiq时创建队列。我们无法在运行时配置它。 关于ruby-on-rails-我可以从Railsworker或controller创建sidekiq队列吗?,我们在StackOverflow上找到一个类似的问题: http

python - 使用Supervisor启动Huey(Redis Celery)消费者

我目前有一个“cons.sh”文件,用于启动我的Huey(CeleryRedis的基本版本)消费者。内容如下:#!/bin/bashecho"smsbothandler"echo"-------------"echo"Waitingfortasks'"echo"StopthehandlerusingCtrl+C"PYTHONPATH=.:$PYTHONPATHhuey_consumer.pymain.huey--threads=3现在我想使用Supervisor来保持它的运行,但看起来,我不能让supervisor启动shell脚本,我必须让它启动python脚本。谁能告诉我如何使用p

ruby-on-rails - Resque worker 在 after_fork 中重新建立连接的性能影响

我试图了解这样做对性能的影响:Resque.before_forkdoRails.logger.info"inresque.rakebeforefork"defined?(ActiveRecord::Base)andActiveRecord::Base.connection.disconnect!endResque.after_forkdoRails.logger.info"inresque.rakeafterfork"defined?(ActiveRecord::Base)andActiveRecord::Base.establish_connectionend这样做不会显着影响性能