草庐IT

异步异常

全部标签

ruby - 异步发出多个 HTTP 请求

require'net/http'urls=[{'link'=>'http://www.google.com/'},{'link'=>'http://www.yandex.ru/'},{'link'=>'http://www.baidu.com/'}]urls.eachdo|u|u['content']=Net::HTTP.get(URI.parse(u['link']))endprinturls此代码以同步方式工作。第一个请求,第二个,第三个。我想异步发送所有请求并在所有请求完成后打印urls。最好的方法是什么?Fiber适合吗? 最佳答案

ruby - 是否有适用于 Ruby 的异步日志记录库?

同步日志记录会导致很大的性能损失,因为它可能会阻塞。是否有一个独立的Ruby库可以进行异步日志记录(log4r似乎没有)?我可以修改标准库记录器以异步记录吗?我正在寻找类似log4j的AsyncAppender的东西-但最好是使用Ruby的代码块将尽可能多的工作转移到后台线程的实现。 最佳答案 我知道你不应该真正回答你自己的问题,但在ruby​​中似乎一切都很简单:require'thread'require'singleton'require'delegate'require'monitor'classAsyncincludeSi

ruby - 将异常处理作为 Ruby 中的常用方法

有人能告诉我有没有办法将异常处理作为一种通用方法并在方法中使用它?让我进一步解释一下。例如我有以下方法defadd(num1,num2)beginnum1+num2rescueException=>eraiseeendenddefdivide(num1,num2)beginnum1/num2rescueException=>eraiseeendend如您所见,尽管我的方法只需要一行,但由于异常处理代码,该方法变得更大了。我正在寻找的是一个更slim的解决方案,比如(只是一个想法)defadd(num1,num2)num1+num2unlessraise_exceptionenddefd

ruby-on-rails - 在 Rails 项目中保留自定义异常定义的常规位置是什么?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion当像这样创建自己的自定义异常时classThingExploded保存这些东西的好地方在哪里?我在考虑lib/exceptions.rb...并且还在考虑以某种方式将它们放在更靠近使用它们的代码处是否更合适。

ruby-on-rails - Ruby on Rails 3 + Apache2 + Phusion Passenger:Bundler::GemNotFound 异常

我正在尝试使用PhusionPassenger在Apache2服务器上部署Rails应用程序。虽然一切都在本地运行良好,但我在部署时遇到了臭名昭著的“Bundler::GemNotFound”错误:Couldnotfindabstract-1.0.0inanyofthesources(Bundler::GemNotFound)我所有的gem都安装在我的本地主文件夹中。因此,我的Apache2配置文件中的乘客配置行如下:LoadModulepassenger_module/home/regis/.gem/gems/passenger-3.0.7/ext/apache2/mod_passe

ruby - 如何在 Ruby 中触发 shell 脚本并在后台(异步)运行?

我有一个名为test.sh的shell脚本。如何从Ruby触发test.sh?我希望test.sh作为后台进程运行,这在Ruby中意味着它是一个异步调用。STDERR和STDOUT也需要写入特定的文件。有什么想法吗? 最佳答案 @TanzeebKhalili的回答有效,但您可能会考虑Kernel.spawn(),它不等待进程返回:pid=spawn("./test.sh")Process.detach(pid)请注意,根据文档,无论您使用spawn()还是手动使用fork()和system(),您都应该在退出之前获取PID和Proc

ruby-on-rails - Rails 4 to_json 产生意外异常 nil 不是符号

我正在将Rails3应用程序升级到Rails4。在Rails3中,包含ActiveRecord对象数组的散列的json序列化工作正常;现在在Rails4中它有不可预测的结果。这是一个在Rails4上因TypeErrorException:nilisnotasymbol而失败的示例对象{1230=>[#,#]}现在如果我拿另一个类似的物体;包含一组ActiveRecord对象的哈希并运行to_json它适用于这个...{1234=>[#,#]} 最佳答案 支持我的QuestionAnswerResponse模型的View没有id列,而

ruby-on-rails - 模拟 rspec 中的错误/异常(不仅仅是它的类型)

我有一段代码是这样的:defsome_methodbegindo_some_stuffrescueWWW::Mechanize::ResponseCodeError=>eife.response_code.to_i==503handle_the_situationendendend我想测试ife.response_code.to_i==503部分发生了什么。我可以模拟do_some_stuff以抛出正确类型的异常:whatever.should_receive(:do_some_stuff).and_raise(WWW::Mechanize::ResponseCodeError)但是我

ruby-on-rails - 查询多条记录时如何避免ActiveRecord::RecordNotFound异常

我有这个代码:Article.find([1,2,3])但数据库中只有记录1和2。我得到这个异常(exception):"ActiveRecord::RecordNotFound(Couldn'tfindallOfferswithIDs(1,2,3)(found2results,butwaslookingfor3))"有没有办法只获取现有记录而不获取异常? 最佳答案 Article.find_all_by_id([1,2,3])是要走的路! 关于ruby-on-rails-查询多条记录时

ruby-on-rails - 在 Ruby 或 Ruby on Rails 中使用异常控制流是一种好习惯吗?

我正在阅读使用Rails进行敏捷Web开发(第4版),我发现了以下代码classApplicationController由于我是一名Java开发人员,我对那部分代码的理解大致如下:privateCartcurrentCard(){try{returnCartManager.get_cart_from_session(cartId)}catch(RecordNotFoundExe){Cartc=CartManager.create_cart_and_add_to_session(newCart())returnc;}}令我印象深刻的是,异常处理用于控制正常的应用程序流程(当用户首次访问