草庐IT

resque-status

全部标签

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

ruby - 如何使用 rails server 启动 resque 守护进程?

我想知道是否有办法在我的生产环境中启动rails服务器时启动我的resque守护进程。我尝试创建一个初始化文件,但没有成功。每次我的rails服务器启动时,我都想运行这两个命令:bundleexecrakeresque:workBACKGROUND=yesRAILS_ENV=productionPIDFILE=/shared/pids/resque_work.pidbundleexecrakeresque:schedulerBACKGROUND=yesRAILS_ENV=productionPIDFILE=/shared/pids/resque_scheduler.pid非常感谢您的帮

heroku - Resque失去与heroku上redis的连接

我在heroku上运行一个应用程序。WebWorker是在Grape框架下开发的。由于Grape没有配置/初始化器之类的东西,我在每次访问Resque之前运行这样的代码:HEROKU_REDIS_URL="redis://redistogo:XXXXX@squawfish.redistogo.com:9990/"uri=URI.parse(HEROKU_REDIS_URL)Resque.redis=Redis.new(:host=>uri.host,:port=>uri.port,:password=>uri.password,:thread_safe=>false)一段时间后,Res

ruby-on-rails - 有没有办法让 Resque 平均分配给定的工作?

我有5个Resqueworker设置如下:QUEUE=*rakeenvironmentresque:workQUEUE=*rakeenvironmentresque:workQUEUE=*rakeenvironmentresque:work当我从事这样繁重的工作时:100.timesdoResque.enqueue(DoTheJob)end第一个worker得到大约80的工作,其他worker分享其余的...就我而言,我可能有40个并发且非常繁重的工作-视频转码-。它们将被连续触发,我希望工作能够平等地或至少公平地与我现有的worker分开(他们最多可以有30个)。是否有一个选项或类似

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这样做不会显着影响性能

ruby-on-rails-3 - 如何设置Resque使用的应用数据库?

我有一个使用Resque运行的Rails应用程序,但在生产环境中运行时我遇到了问题。应用程序使用开发数据库运行。如何根据应用环境设置Resque使用的数据库?谢谢! 最佳答案 启动Rails服务器时,还需要提供环境:railsserver-eproduction 关于ruby-on-rails-3-如何设置Resque使用的应用数据库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

ruby-on-rails - 我如何查看哪些作业已使用 resque-scheduler 排队?

如果我使用Resque.enqueue将作业加入队列,我可以在localhost:(whatever)/resque打开一个时髦的界面并查看我排队的作业。但是,如果我使用resque-schedulergem安排作业(例如,通过使用Resque.enqueue_at(10.minutes.from_now,MyJob)),它不会出现在该界面-我所能做的就是等待10分钟,看看是否执行了MyJob!有没有办法以编程方式或其他方式查看哪些作业已经排队?我必须在Redis中四处挖掘吗? 最佳答案 答案是,当正确配置后,您的Resque网络界

ruby - resque-scheduler 在作业删除时失败

我使用了Github上的POC(队列丢失了,我添加了它:name='send_emails'config={}config[:class]='SendEmail'config[:args]='POCemailsubject'config[:cron]='******'config[:persist]=trueconfig[:queue]='new'Resque.set_schedule(name,config)sleep(10)#TrytoremovethejobResque.remove_schedule(name)我收到以下错误:/var/lib/gems/1.9.1/gems/r

ruby-on-rails - 即使在 Resque 作业成功完成后,Redis 键也没有被删除

这是我的场景,我正在使用resque在Redis中排队作业,这是在ROR中完成的通常方式。我的key格式看起来像这样(根据我的命名空间约定)"resque:lock:Jobs::XYZ::SomeCreator-{:my_ids=>[101]}"作业成功运行到完成。但是key还在redis中。对于某个流程,我需要为相同的参数(key基本上相同)再次排队并执行作业。但似乎这项工作没有排队。我的猜测是,由于该键已经存在于Redis中,因此它不会再次对作业进行排队。问题:resque的这种行为是否正常(成功完成后不删除key)?如果是,我应该如何处理这种情况(根据最佳实践)?如果不是,你能帮

ruby-on-rails - 使用 Mongoid (MongoDB)、Redis、Resque、Capistrano 等部署 Ruby on Rails 应用程序

我正在创建一个部署在AWS上的RubyonRails网站。我遇到了配置问题,我似乎找不到涵盖所提到的各种工具的配置以及如何设置它们以便于在开发(在本地主机上)和部署时使用的文档/教程。现在我已经设置了一个Rails应用程序,我正在为我所有的Rubygem使用Bundler。我有两个主要目标。易于开发-理想情况下,只需克隆存储库并运行“railsserver”就可以了。Redis服务器、Resqueworker、MongoDB数据库等所有其他东西都应该自动启动/创建。易于部署-给定一些配置文件(如YAML文件),我应该能够通过简单地运行“capproductiondeploy”或类似的东