Ruby on rails rails sphinx使用延迟的作业rake任务重新索引

Ruby on rails rails sphinx使用延迟的作业rake任务重新索引,ruby-on-rails,rake,sphinx,thinking-sphinx,Ruby On Rails,Rake,Sphinx,Thinking Sphinx,我在这个网站和其他网站上找到了一堆帖子,这些帖子给了我一些我需要的小道消息,但我没能把它们拼凑起来 对于搜索,我正在使用thinking sphinx gem在我的网站上运行sphinx。每次用户向站点添加新帖子时,我都需要重新编制索引。我已经在我的站点上运行了delayed_作业,所以每次添加新帖子时,我都希望使用delayed_作业异步重新编制索引。我认为我需要异步使用handle_命令,并在我的模型中调用一个方法,该方法将运行rake任务以重新索引..但是我读到的某个地方说rake不应该从

我在这个网站和其他网站上找到了一堆帖子,这些帖子给了我一些我需要的小道消息,但我没能把它们拼凑起来

对于搜索,我正在使用thinking sphinx gem在我的网站上运行sphinx。每次用户向站点添加新帖子时,我都需要重新编制索引。我已经在我的站点上运行了delayed_作业,所以每次添加新帖子时,我都希望使用delayed_作业异步重新编制索引。我认为我需要异步使用handle_命令,并在我的模型中调用一个方法,该方法将运行rake任务以重新索引..但是我读到的某个地方说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

如果有人在跟踪,我最终通过在post.rb方法中添加一个系统调用来解决这个问题:

# in post.rb
def reindexDB
  `rake thinking_sphinx:rebuild`
end
…然后每当我需要叫它时,我就用这个:

Post.delay.reindexDB

知道如何正确处理这件事还是很好的。

你做错了。使用Delta进行此操作-