3

我正在使用 Thinking sphinx 进行搜索。它搜索正确,但问题是每当我添加新记录时,我必须手动 rake thinking_sphinx:index。所以要自动运行它,我会在 gem 与 cron 一起使用时使用它,但它仍然不会自动发生,要么我要做

耙thinking_sphinx:索引

或者

无论何时 -w 自动创建索引

以下是 config/schedule.rb 的代码:

every 10.minutes do
  rake "thinking_sphinx:index", :environment => :development
end

every :reboot do
  rake "thinking_sphinx:start",:environment => :development
end

当我做 crontab -li 得到以下信息:

# Begin Whenever generated tasks for: store
@reboot /bin/bash -l -c 'cd /home/user/newsvn/alumnicell && RAILS_ENV=development bundle exec rake thinking_sphinx:start --silent'

0,10,20,30,40,50 * * * * /bin/bash -l -c 'cd /home/user/newsvn/alumnicell && RAILS_ENV=development bundle exec rake thinking_sphinx:index --silent'

# End Whenever generated tasks for: store

这不起作用的问题是什么以及在哪里?

我也将环境更改为开发。默认情况下它是生产。这两个有什么区别?

4

2 回答 2

0

我会建议你使用 Thinking sphinx 的 delta 索引,而不是使用 cron 作业每 10 分钟重建一次 Thinking sphinx。

正如这里所描述的,您应该只delta在模型中添加一个布尔列,set_property :delta => true在您的define_index块中设置并运行rake ts:rebuild

而已。

于 2012-11-20T04:59:37.857 回答
0

您可以分配日志文件以跟踪错误,然后将其发布在此处。

我也建议:environment全局设置。

试试这个代码:

set :environment, :development
set :output, 'tmp/whenever.log'

every 10.minutes do
  rake "thinking_sphinx:index"
end

every :reboot do
  rake "thinking_sphinx:start"
end
于 2012-05-29T14:18:21.793 回答