我已成立了4个cron作业自动重新索引我的狮身人面指标如下:如何在合并完成后立即运行Sphinx索引器?
*/5 * * * /usr/bin/pgrep indexer || time /usr/local/sphinx/bin/indexer --rotate --config /usr/local/sphinx/etc/sphinx.conf ripples_delta
*/5 * * * /usr/bin/pgrep indexer || time /usr/local/sphinx/bin/indexer --rotate --config /usr/local/sphinx/etc/sphinx.conf users_delta
30 23 * * * /usr/bin/pgrep indexer || time /usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --merge users users_delta --merge-dst-range deleted 0 0 --rotate
0 0 * * * /usr/bin/pgrep indexer || time /usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --merge ripples ripples_delta --merge-dst-range deleted 0 0 --rotate
上面显示p纤ep,我希望在每一个实例被用来检查,看看是否索引器已在运行。我的意图是防止任何潜在的资源饥饿重叠。
前两个Cron作业每5分钟运行一次,并更新我的两个主索引的Delta索引。
第二次每天运行一次(一个在下午11:30,另一个在上午12点),并将三角洲指数合并到他们的主要对应部分。
我的理解是,在这些索引合并之后,我需要重新运行delta上的索引,以便删除所有先前合并的数据,并基本上清理它们以准备第二天的索引。
如何确保在合并完成后自动发生?显然,我可以添加两个cron作业,但是我需要在相关合并完成后立即进行。
在此先感谢。
哇..绝对高明的想法和我从来没有亲自想出的东西。巴里,你来拯救所有的狮身人面像。我真的很感激你花时间帮助我完成所有这些。 :) – gordyr
只是对上述脚本的一个简短问题...在我的sphinx.conf文件中,我正在pre_query部分中自动更新计数器。我可以安全地离开这个脚本的这些部分,或者它真的应该运行后重新索引? – gordyr
是的,您需要在合并完成后手动更新计数器表。狮身人面像无法为你做到这一点。在执行合并时,将不运行'sql _...'查询。查看其他帖子中的错误链接。 – barryhunter