TS 遅延デルタ ジョブが終了したかどうかを確認する方法はありますか? コールバックで新しい検索を実行する必要があるシナリオがありafter_save
ます。もちろん、デルタ インデックスへの変更が検索結果に反映されることを確認したいと考えています。
私の例の詳細は次のとおりです。
多くの注釈を持つフィーチャーと呼ばれるモデルがあります(注釈モデル)。インデックスは次のようになります。
define_index do
indexes annotations.value, :as => :annotations
# other indexes
set_property :delta => :delayed
end
注釈の「値」が変更delta
されると、注釈モデルのコールバックで関連する機能の属性を更新します。delta 属性を true に設定すると、delayed_job タスクがスピンオフしてデルタ インデックスが更新されます。別のコールバックで、更新されたデルタ インデックスに対して新しい検索を実行したいのですが、検索がインデックスの現在の状態をまったく反映していないことに気付きました。デルタ ジョブがまだ終了していないため、これは間違いありません。
これらのタイミングの問題に対処するための最良の戦略は何ですか?