问题标签 [excon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1877 浏览

ruby-on-rails - Excon::Errors::Timeout: 已达到连接超时

我正在使用 sidekiq 通过 Mandrill APIs 发送邮件。一切正常。但是从过去几天开始,我在 sidekiq 中收到超时错误,而工作尝试随机发送邮件。

Excon::Errors::Timeout: 已达到连接超时

我无法找到此错误的实际原因。我在用

  • 红宝石'2.1.1'
  • sidekiq '3.5.0'
  • mandrill_mailer '1.1.0'
  • 山魈-api '1.0.53'

这是完整的错误

0 投票
1 回答
205 浏览

ruby-on-rails - Carrierwave 上传到 S3 失败,但 curl 有效

我正在尝试使用 Carrierwave(Rails 4.2 上的 1.0.0)将图像上传到 S3。我得到 403 拒绝访问。但是,当我PUT使用 curl 进行手动请求时,它工作得很好。我已经确认 Rails 正确地阅读了我的秘密。所有这些对我来说意味着 Excon 以某种方式没有发送我的凭据。

我能做些什么?

工作卷曲命令:

载波配置:

编辑:更新 - 我不知道我改变了什么,但是在使用 curl 命令时突然出现以下错误:

0 投票
1 回答
883 浏览

neo4j - Excon::Error::Socket: 到达文件末尾 (EOFError),neography gem

我一直在为我的 rails 项目使用neography gem,有时我最终会收到以下错误:

有人可以帮我解决这个错误吗?此外,我无法根据我的要求重现此错误。

谢谢

0 投票
1 回答
777 浏览

ruby-on-rails - Rails + Heroku:Excon 预期([200、201、202、204、206、304])<=> 实际(422 无法处理的实体)

我在 Heroku 中部署的 Rails 应用程序使用了一些我定义并计划每天执行一次的 rake 任务。非常简单的任务,他们唯一要做的就是将一些作业添加到 DelajedJobs 表中,以便工作人员起床并执行它们。

几天前,所有 rake 作业都开始失败。其中之一的一些例子:

我在我的 Rollbar 帐户中看到了这个异常:

所以我所做的是用一个begin rescue end块覆盖,以避免丢失那里的工作,但我一直看到同样的错误。没有什么可以让我知道可能发生的事情。这是完整的堆栈跟踪:

我可以看到这可能是相关的:https ://github.com/heroku/platform-api/issues/74

PS:我很确定 Rails Jobs 没有任何问题,因为我手动通过rails c,执行了其中一个,一切顺利。

问题出在 rake、DelayedJob、Workless(heroku 工人管理的宝石)或 Excon。

附加信息

我已在答案中添加了解决方案,并将此问题转换为问答,以防对其他人有用。

0 投票
1 回答
58 浏览

ruby-on-rails - 使用分块请求时如何强制关闭 excon 连接

我正在尝试读取我请求的每个图像的第一块,以获取我能够执行的 mime 类型和大小。

但是,当我使用 Connection#reset 时,它不会终止连接并继续下载下一个块。

我只是想知道是否可以在获得第一个块后关闭连接?

这是我现在的代码

0 投票
1 回答
625 浏览

ruby - 带有 net-http-persistent 的法拉第使连接保持打开状态,导致“Errno::EMFILE: Too many open files”

我们有一个长时间运行的进程(Rake 任务),使用 Faraday 和 net_http_persistent 适配器向远程主机发出 HTTPS 请求。在运行几个小时到几天后,它会停止发出请求。

该过程还使用 Excon 发出一些请求(向我们的异常报告服务报告异常),并且两个 HTTP 客户端都记录了相同的错误,但措辞略有不同。这两个错误是:

Faraday::SSLError: SSL_connect SYSCALL returned=5 errno=0 state=error: 证书验证失败

Excon::Error::Certificate: SSL_connect SYSCALL returned=5 errno=0 state=error: 证书验证失败 (OpenSSL::SSL::SSLError) 无法验证证书。这可能是远程主机或 Excon 的问题。Excon 捆绑了证书,但可以自定义:

我们的异常报告服务没有收到任何这些异常。所以我们只在日志中发现了这些错误。

0 投票
2 回答
310 浏览

rspec - 使用 RSpec 进行测试时,如何在 Sidekiq 工作人员中正确捕获错误?

我有一个相对简单的工人,它使用 Excon 从互联网上抓取一些东西。我正在努力成为一名优秀的测试人员并使用 Webmock 来强制对 Internet 交互进行存根,这样我实际上是在根据各种存根交互测试代码应该做什么。

我注意到 RSpec 没有捕捉到工作人员内部发生的故障。这可能是我的代码,它可能是一个错误,我不确定。

这是一个简单的工人示例(是的,我知道救援异常很糟糕,接下来我会修复它):

这是一个简化的 RSpec 测试:

启用 Webmock 后,这会导致 Excon 失败(见 test.log 文件):

但是,RSpec 认为这很好用:

我不确定我在这里做错了什么。我预计 Sidekiqperform未能将 RSpec 视为失败,但事实并非如此。

  • 我没有正确捕捉到这个错误吗?
  • 我是否应该检查有关工作状态的某些内容,而不是期望 RSpec 在工作人员中捕获此错误?
  • 我应该完全做其他事情吗?

谢谢!

0 投票
1 回答
28 浏览

ruby-on-rails - 使用 Excon Rails 6.0.0 在生产中未发送 API 请求

我遇到了一个问题,即我对 Excon gem 的 POST 请求没有在生产中发送,但在开发中完美运行。在我的日志中,它显示Processing ServiceFormsController#run_background_check 作为 HTML。我不知道为什么会发生这种情况......上周它工作得很好。现在突然之间,没有请求从生产服务器发出……它显示了正在发生的操作,但 API 端点从未收到 POST。我将该网站作为列入白名单的域添加到我的 CORS 配置中。这对改善结果没有任何帮助。

service_forms_controller.rb

good_hire.rb

服务器开发日志

initate_background_check.html.erb