半夜更新:也可以叫做非繁忙時段更新。
思路:從上次遍歷的最後一條開始.我們需要儲存乙個資料庫中的id,也就是每次遍歷後的最大id,以方便下次遍歷的時候從這個id開始,判斷只去比這個id大的記錄進行更新索引。
1.建立乙個txt檔案
2.第一次遍歷,將遍歷後的最大id存入txt檔案
3.以後每次遍歷,從txt檔案中取出id,並在遍歷資料庫結束後更新最大id.
4.定製任務,要求每天凌晨2點執行此程式.
定製任務的方式
1.開啟乙個網頁,網頁中有一段js**,判斷時間如果是凌晨2點那麼將頁面跳轉到我們的action路徑,從而啟動任務。
2.spring提供的quartz來進行任務定製
**如下:
0/5 * * * * ?
org.quartz.scheduler.instancename = testscheduler
org.quartz.scheduler.instanceid = auto
public class createindex
public void dojob()throws exception
public void createindex() throws exception
list list = articlemanager.articlelist(integer.parseint(articleid));
for (iterator it = list.iterator(); it.hasnext();)
writer.optimize();
writer.close();
//最後一篇文章的id寫入txt檔案
this.writertext(articleid); }
//從txt檔案中讀入id
public string readtext()
} catch (exception e) finally catch (ioexception e)
}} return content;
}//向txt檔案中寫入id
public void writertext(string articleid) catch (exception e) finally catch (ioexception e)
}} }
mysql死鎖 非主鍵索引更新引起的死鎖
背景 最近線上經常丟擲mysql的乙個deadlock,細細查來,長了知識!分析 錯誤日誌如下 21 02 02.563 error dao.commondao pool 15 thread 19 jbc.trade.qunar.com 703c9ddbe4b143609035365ca46bff3...
為什麼商業搜尋引擎選擇的索引更新策略是完全重建策略
這種重建策略比較適合小文件集合,因為完全重建索引的代價較高,但是目前主流商業搜尋引擎一般是採用此種方式來維護索引的更新,這與網際網路本身的特性有關。目前索引更新策略有四種 完全重建策略 再合併策略 原地更新策略 混合策略 如果希望了解這4種索引更新策略可以去看 這就是搜尋引擎 核心技術詳解 作者的部...
搜尋引擎原理(一)之網頁抓取與更新
1.有哪些網頁檢索維護的方法 主要有寬度 廣度 優先,兼顧深度的遍歷策略 不重複抓取策略 大站優先策略 非完全pagerank策略 ocip策略 合作抓取策略等主流的網頁抓取策略。詳細內容請參考 搜尋引擎爬蟲網頁抓取策略 2.網頁更新策略方法有哪些?2 使用者體驗策略 一般來說,搜尋引擎將處理的結果...