草庐IT

ruby-on-rails - Resque 或 Gearman - 为后台作业选择合适的工具

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我们正在开发一个Web应用程序,其中大约50%的写入请求,我们最终将数据推送到多个数据存储,并在这些数据存储中插入和更新大量记录。为了缩短响应时间,我们希望在后台异步处理此类请求。我们的网络应用程序是用RubyonRails编写的。我倾向于的两个解决方案是Resque和Gearman。请求:更多信息在这里:http://github.com/blog/5

ruby-on-rails - Resque.enqueue 第二次运行失败

我正在尝试将一个应用程序从Rails3.0.3移植到Rails3.1rc...我认为我没有遗漏任何配置方面的内容。该过程在Rails3.0.X中完美运行,而不是在3.1rc中。在控制台中,我这样做:Resque.enqueue(EncodeSong,Song.find(20).id,Song.find(20).unencoded_url)到目前为止一切正常。Resque-web报告没有失败的作业。而且,我从模块EncodeSong获得了两个“puts”。但是,第二次运行Resque.enqueue(EncodeSong,Song.find(20).id,Song.find(20).un

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-3 - 带有 Resque 和 Rails 的 Redis : ERR command not allowed when used memory > 'maxmemory'

使用redis时报错:ERRcommandnotallowedwhenusedmemory>'maxmemory'信息命令显示:redis127.0.0.1:6379>inforedis_version:2.4.10redis_git_sha1:00000000redis_git_dirty:0arch_bits:64multiplexing_api:kqueuegcc_version:4.2.1process_id:1881uptime_in_seconds:116uptime_in_days:0lru_clock:1222663used_cpu_sys:0.04used_cpu_u

ruby-on-rails - 如何在不清除整个队列的情况下从 Resque 队列中删除特定作业?

我正在使用Resqueworker处理队列中的作业,我在队列中有大量作业>1M,并且有一些作业需要删除(错误添加)。用作业创建队列不是一件容易的事,所以使用resque-web清除队列并再次添加正确的作业对我来说不是一个选择。感谢任何建议。谢谢! 最佳答案 要从队列中删除特定作业,您可以使用destroy方法。它非常容易使用,例如,如果您要删除一个名为queue1的队列中具有Post类和idx的作业你可以这样做..Resque::Job.destroy(queue1,Post,'x')如果你想从队列中删除所有特定类型的作业,你可以使

ruby-on-rails - 以编程方式获取 Resque 队列中的作业数

我有兴趣设置一个监控服务,只要Resque队列中的作业太多,它就会传呼我(我有大约6个队列,每个队列都有不同的编号)。我还想设置一个非常相似的监控服务,当我的队列中的失败作业超过一定数量时,它会提醒我。我的问题是,我发现我的redis服务器上有很多与Resque相关的key和混淆。我不一定看到一种直接的方法来计算每个队列的作业数或​​失败的作业数。目前是否有一种简单的方法可以从redis中获取这些数据? 最佳答案 是的,这很容易,因为您使用的是Resquegem:require'resque'Resque.info将返回一个散列例如

ruby-on-rails - delayed_jobs vs resque vs beanstalkd?

这是我的需求:Enqueue_in(10.hours,...)(DJ语法非常完美。)同时增加worker。(Resque或beanstalkd对此有好处,但不是DJ)必须每秒处理100个作业的推送和弹出。(我需要进行测试才能确定,但​​我认为DJ无法处理这么多工作)Resque和beanstalkd不执行enqueue_in。有一个插件(resque_scheduler)可以做到这一点,但我不确定它有多稳定。我们的环境在亚马逊上,他们为拥有亚马逊实例的人免费推出了beanstalkd,这对我们来说是一个优势,但我仍然不确定这里的最佳选择是什么。我们运行rails2.3,但我们很快就会将

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

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

ruby-on-rails-3 - Resque 工作人员 : invalid operator: $oid

几天前工作的worker由于某种原因停止工作。resque日志报告Mongo::OperationFailure异常,错误invalidoperator:$oidclassSimilarTargets@queue=:similar_queuedefself.perform(target_id)source_target=Target.find(target_id)....endend工作人员在Target.find(target_id)上失败,即使通过rails控制台传入了一个直字符串。Target.find(id)在控制台和代码的其他地方工作正常,我无法弄清楚为什么这会失败,即使wo

ruby-on-rails - resque rails 4.2 deliver_later 邮件程序

我有一个RubyonRails应用程序,我需要在面试前一天向申请人发送提醒邮件。为此,我计划使用TheRescueScheduler,我使用的是railsv4.2。我已经运行了redis服务器,我的代码如下:defsendemails@user2=User.new(:firstname=>"Betterlucknexttime",:email=>)SendEmailJob.new.perform(@user)end在sendEmail文件中classSendEmailJob在config/developement中我设置了config.active_job.queue_adapter=