0
我有一個check_delivery
方法,它使用Sidekiq調用EasyPost api gem。Sidekiq返回作業ID
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作業標識,而不是跟蹤狀態(即「out_for_delivery」,「交付」等)
我在做什麼錯?
這是因爲當調用'perform_async'時,它將它發送到後臺進程,並不立即執行它。你想要做什麼? – axsuul
作爲@axsuul答案的補充,您可以使用[sidekiq-status](https://github.com/utgarda/sidekiq-status)跟蹤您的工作進展,並設置一個ajax輪詢以在您的用戶工作完成。 –