3

このサイトや他のサイトで、必要なもののヒントをくれたたくさんの投稿を見つけましたが、それらをつなぎ合わせることができませんでした.

検索のために、私は自分のサイトで thinking sphinx gem を使用して sphinx を実行しています。ユーザーがサイトに新しい投稿を追加するたびに、インデックスを再作成する必要があります。私は自分のサイトで既にdelayed_jobを実行しているので、新しい投稿が追加されるたびに、delayed_jobを使用して非同期的に再インデックスしたいと考えています。handle_asynchronously コマンドを使用して、rake タスクを実行してインデックスを再作成するメソッドをモデルで呼び出す必要があると思います。

要するに、完全に混乱しています。誰かがこれについてどうすればよいかアドバイスできますか?

私は完全にオフになる可能性がありますが、これは私が考えていることです..

# in post.rb
def reindex_database
  # run rake task  
end

# in posts_controller.rb
def add_post
  # add_post logic
  handle_asynchronously Post.reindex_database
end
4

2 に答える 2

1

あなたはそれを間違っています。これにはデルタを使用します-http ://freelancing-god.github.com/ts/en/deltas.html

于 2012-04-17T18:02:01.997 に答える
1

誰かがこれに従っていた場合に備えて、post.rb メソッドにシステム コールを追加することでこれを解決しました。

# in post.rb
def reindexDB
  `rake thinking_sphinx:rebuild`
end

..そして、これを呼び出す必要があるときはいつでも、これを使用します:

Post.delay.reindexDB

これについて適切に行う方法を知っていれば、まだいいでしょう。

于 2012-04-04T18:11:48.290 に答える