2012-04-04 74 views
3

我在這個網站上發現了一堆帖子,其他人給我提供了我需要的信息,但是我一直無法將它們拼湊在一起。使用delayed_job rake任務的rails sphinx reindex

對於搜索我正在使用思維獅身人面像寶石在我的網站上運行獅身人面像。每次用戶向該網站添加新帖子時,我都需要重新編制索引。我已經在我的網站上運行了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 

..和然後每當我需要調用這個,我用這個:

Post.delay.reindexDB 

仍然會很好,知道如何正確地去做這件事。