首页 > 解决方案 > 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 工作程序中,该工作程序每秒运行多次。

标签: ruby-on-railsrubythread-safetysidekiqtyphoeus

解决方案


早期版本有种族问题,请关注本次讨论: https ://github.com/typhoeus/typhoeus/issues/301

但现在一切都应该是线程安全的


推荐阅读