Sidekiq返回工作ID

时间:2015-06-06 17:37:17

标签: ruby-on-rails sidekiq easypost

我有一个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","已交付"等等)

我做错了什么?

1 个答案:

答案 0 :(得分:2)

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

显然,Sidekiq工人不会像普通的红宝石类和方法一样返回结果。

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