ruby-on-rails - Typhoeus 是线程安全的吗?
问题描述
这就是我使用它的确切方式。经过大量谷歌搜索后,我很难找到明确的答案。
如果以以下简单方式使用:
class CancelSubscriptionWorker
include Sidekiq::Worker
sidekiq_options retry: 3
def perform(body)
resp = Typhoeus::Request.new("http://example.com", {
method: :post,
timeout: 27,
body: body.to_json,
userpwd: 'aaa:bbb',
headers: {
'Content-Type': 'application/json'
}
}).run
end
end
我在 Sidekiq 工作人员内部执行此操作,这是线程安全的吗?
我没有使用 Hydra,我也不关心保持活动或连接池。我也没有跨线程共享任何变量。上面的代码出现在一个简单的 Sidekiq 工作程序中,该工作程序每秒运行多次。
解决方案
早期版本有种族问题,请关注本次讨论: https ://github.com/typhoeus/typhoeus/issues/301
但现在一切都应该是线程安全的
推荐阅读
- android - 如何将sqlite基础复制到android模拟器?
- haskell - Haskell 函数 `seq` 的名称从何而来?
- python - Python 包“click”在新包中使用时导致“错误:得到意外的额外参数 (sdist bdist_wheel)”
- excel - 是什么导致代码中的编译错误?
- excel - VBA - 日期和时间,清理和格式化
- android - 没有 onCreateView 的片段
- amazon-web-services - 将 AWS 账户添加到 GCP Stackdriver
- ruby-on-rails - Rails - 我的控制器中的 AbstractController::DoubleRenderError
- azure - Databricks-connect 测试:TypeError:预期的 str、字节或 os.PathLike 对象,而不是 NoneType
- java - 是否有任何可能的方法从 OnCllickListener 方法中检索 ArrayList 值并将其保存在它的父方法中?