每当宝石没有运行时cron

时间:2012-05-29 09:07:55

标签: ruby-on-rails-3 cron thinking-sphinx whenever

我正在使用思考狮身人面像进行搜索。它搜索正确但问题是每当我添加新记录时我都要做rake thinking_sphinx:index manual.So自动运行它我每次使用时都会使用cron但仍然它不会自动发生,要么我必须做

rake thinking_sphinx:index

每当-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时 - 我得到以下内容:

# 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

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

就是这样。