2012-04-04 7 views
3

私はこのサイトと私が必要としているものの宝物を私に与えたが、私はそれらを一緒に作ることができなかった。rails delayed_job rakeタスクを使用したスフィンクスの再インデックス

検索のために私は思考のスフィンクスの宝石を使用して私のサイトでスフィンクスを実行しています。ユーザーが新しい投稿をサイトに追加するたびにインデックスを再作成する必要があります。私は既に私のサイトで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 

答えて

1

、私は私のpost.rb方法でシステムコールを追加することによって、これを解決することになりました。

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

..and私はこれをコールする必要があるとき、その後、私はこれを使用します。

Post.delay.reindexDB 

はまだ素敵なノウハウだろうこれを適切に行う方法を教えてください。

関連する問題