0

我有一个check_delivery使用 Sidekiq 调用 EasyPost api gem 的方法。

  def check_delivery
    if tracking_number.present?
      EasypostWorker.perform_async(tracking_number)
    end
  end

class EasypostWorker
  include Sidekiq::Worker

  def perform(tracking_number)
    EasyPost.api_key = Rails.application.secrets.easypost_api_key
    tracker = EasyPost::Tracker.create(tracking_code: tracking_number)
    tracker.status
  end
end

然而,这将返回 24 个随机字符 Sidekiq 作业 ID,而不是跟踪器状态(即,“out_for_delivery”、“delivered”等)

我究竟做错了什么?

4

1 回答 1

2

check_delivery 方法调用了 EasypostWorker,它返回了作业 ID。

显然 Sidekiq Workers 不会像常规的 ruby​​ 类和方法那样返回结果。

所以我status在我的模型中添加了一个属性并更新了 Worker 内部的属性。

于 2015-06-06T20:27:36.690 回答