2017-10-05 3 views
0

私はsidekiq-limit_fetch(バックグラウンド処理用)gemを使用しています。私はいくつかのテーブルに追加されたレコードが、呼ばれないafter_createコールバックを見ることができますバックグラウンドジョブを使用してレコードを作成/更新/破棄すると、Railsコールバックが機能しない

class ActivityWorker 
    include Sidekiq::Worker 

    # TODO - Update goal satisfied people 
    def perform(campaign_id) 
    Modal.create(data: data) 
    end 
end 

を次のように仕事をしている

モーダルとコールバック
class Modal < ApplicationRecord 

    # ======== Callbacks ============================== 
    after_create :add_activity 


    def add_activity 
    p 'came here ************' 
    p 'came here ************' 
    # Do some operations here 
    end 

end 

を次のようしています。コールバックはモデル/コントローラを使用して作成/更新/破棄するときにのみ機能すると思いました。私はライトですか?はいの場合は、コールバックでジョブを使用する他の方法を教えてください。

+0

コールバックが、その場合には解雇すべきサービスの方法のための私の例です。他の何かが間違っています。 –

+0

なぜコールバックが起動しないと思いますか?あなたのバックグラウンドワーカーのロギングは異なって設定される可能性があるため、ログには表示されないことがあります。 – Leito

答えて

0

私はあなたがコールするか、独自のメソッドを書くだけで、できるだけコールバックを使用しないことをお勧めします。

はここ

サービス/ create_modal_service.rb

class CreateModalService 
    def self.create(params={}) 
    modal = Modal.new(params) 
    if modal.save 
     p 'came here ************' 
     p 'came here ************' 
     # Do some operations here 
     return true 
    else 
     return false 
    else 
    end 
end 
+0

は次のように呼び出します:CreateModalService.create(data:data) – thanhnha1103

関連する問題