當我在我的應用程序中創建一個新的User
時,我運行一個after_create
方法,然後異步觸發一個Sidekiq工作人員。Sidekiq在工作人員沒有找到對象
這個工人...
def perform user_id
@user = ::User.find user_id
# ...
end
...總是返回以下錯誤:
ActiveRecord::RecordNotFound: Couldn't find User with 'id'=315928979197048617
但是用鋼軌控制檯來檢查,如果用戶ID容易找到:
User.find(315928979197048617)
=> #<User id: 315928979197048617>
這是否發生是因爲t他創建新用戶需要一些時間,並且工作人員在完成時已經執行了該方法?如果我如何解決這個問題?