草庐IT

知道这10个让你的API接口突然超时的原因吗?

全部标签

ruby - 使用 ruby​​ mechanize 捕获超时错误

我有一个Mechanize功能可以让我退出网站,但在极少数情况下它会让我超时。该功能涉及转到特定页面,然后单击注销按钮。有时,当进入注销页面或单击注销按钮时,mechanize会遇到超时,代码会崩溃。所以我做了一个小的救援,它似乎在第一段代码下面看到的那样工作。deflogmeout(agent)page=agent.get('http://www.example.com/')agent.click(page.link_with(:text=>/LogOut/i))end通过救援注销:deflogmeout(agent)beginpage=agent.get('http://www.e

ruby - 如何找到 "essential"方法来提供 Ruby mixins 的接口(interface)?

问题标题的可怕之处是我要解决的问题。示例:在Ruby中,Enumerable是某种意义上的接口(interface),我可以实现某些东西并将其记录为:defmyfancymethod(please_pass_me_an_Enumerable_here)但另一方面,Enumerable是一种接口(interface)的放大,它以#each作为其方法之一。如果我有课classFoodefeach:barendend对于那些不熟悉Ruby的人来说,如果你在一个类中混入Enumerable模块,你会得到许多只依赖于#each方法来提供诸如#map之类的方法,#select等我可以说我的Foo类

Ruby 1.9.3 - CSV.table 如何知道 CSV 文件中是否没有 header ?

我一直在用CSV.table做一些测试。我有两个几乎相同的小CSV文件,但其中一个缺少标题行。当我对带有标题行的CSV文件运行CSV.table时,一切都按预期进行。当我针对没有标题行的CSV文件运行它时,我得到:NoMethodError:undefinedmethod`encode'fornil:NilClass我用不同类型的数据、不同类型的header尝试了这个,并得到了相同的结果。我很好奇CSV.table的魔力。如果我使用CSV.parse并将标题设置为true,那么无论如何它总是使第一行成为标题。所以,我一直在使用CSV.table来检查导入的CSV文件是否有标题行,但我对

Ruby Net::FTP 超时线程

我试图通过使用线程FTP连接来加速多个FTP下载。我的问题是我总是有线程挂起。我正在寻找一种干净的方法来告诉FTP它需要重试ftp事务,或者至少知道FTP连接何时挂起。在下面的代码中,我对5/6个单独的FTP连接进行线程处理,其中每个线程都有一个预期下载的文件列表。当脚本完成时,一些线程挂起并且无法加入。我使用变量@last_updated来表示上次成功下载的时间。如果当前时间+20秒超过了@last_updated,就杀掉剩下的线程。有没有更好的办法?threads=[]max_thread_pool=5running_threads=0Thread.abort_on_excepti

ruby-on-rails - Rails 3. 无法在任何来源中找到 libv8-3.3.10.4

我第一次尝试运行capdeploy但出现此错误...[11.12.13.140]sh-c'cd/var/www/releases/20120302151641&&bundleinstall--gemfile/var/www/releases/20120302151641/Gemfile--path/var/www/shared/bundle--deployment--quiet--withoutdevelopmenttest'**[out::11.12.13.140]Somegemsseemtobemissingfromyourvendor/cachedirectory.**[out:

ruby - 如何在 Mac OSX 10.7.3 LION 上使用 RVM 安装 Ruby 1.9.2?

我正在学习RubyonRails教程,但对安装Ruby1.9.2挂断了。它已在#compiling函数处停留了约36小时。我试图找到我的configure.log文件,但老实说我找不到。到目前为止我做了什么:1)安装XCode2)安装GCC10.7v2我使用的命令:RVMreloaded!vinnies-macbook:~vinnie$rvminstall1.9.2--with-gcc=clangFetchingyaml-0.1.4.tar.gzto/Users/vinnie/.rvm/archivesExtractingyaml-0.1.4.tar.gzto/Users/vinnie

ruby - Office 365 Rest API - 守护进程周身份验证

我正在尝试构建一个Ruby守护进程服务来访问Office365restAPI。最近可以通过OAuth“client_credentials”流程来执行此操作,详见此博文:https://learn.microsoft.com/en-us/archive/blogs/exchangedev/building-daemon-or-service-apps-with-office-365-mail-calendar-and-contacts-apis-oauth2-client-credential-flow我正在努力生成有效的访问token。token端点返回一个JWT,但是当使用这个to

ruby-on-rails - ENV 变量中的 Capistrano 和 API key ?

我正在使用Capistrano部署我的Rails应用程序。我想在服务器上保存一些APIkey作为环境变量。我使用Capistrano部署的Rails应用程序应该可以访问这些APIkey。作为守护进程运行的单独的ruby​​文件也应该可以访问这些APIkey。在环境变量中设置APIkey似乎是理想的解决方案,但是,我无法在我的Rails应用程序中使用ENV["SOME_KEY"]访问它们。根据thispost,因为capistrano以非交互和非登录方式运行,~/.bashrc和~/.bash_profile未加载。流程图建议我应该使用$BASH_ENV。我可以只在$BASH_ENV中添

ruby - Sinatra 和 Grape API 在一起?

我一直在阅读,我发现了这个micro-frameworkcalledGrape对于ruby。我目前正在使用Sinatra处理网络界面,但我也想实现Grape来处理应用程序的API方面。我找不到有关此主题的任何有用建议。grape文档说:“Grape是一个用于Ruby的类似REST的API微框架。它旨在通过提供简单的DSL来轻松开发RESTfulAPI,从而在Rack上运行或补充现有的Web应用程序框架,例如Rails和Sinatra。”所以听起来应该有一种官方方式将两者结合起来,对吗?此应用程序也将在Heroku上运行。 最佳答案

ruby - 法拉第超时

我已经在网上搜索了文档和其他地方,但似乎无法找到为Faraday设置超时选项的正确方法。有人知道答案吗?我试过:conn=FaradayStack.build(url)conn.headers[:user_agent]=AppConfig.user_agent#conn.options[:timeout]=20#conn.options[:open_timeout]=20response=conn.getdo|req|req.options={:timeout=>20,:open_timeout=>20}endresponse.body似乎没有任何效果。顺便说一句,如果有影响的话,我正