package com.blinkcoder.job; import com.blinkcoder.kit.SearchKit; import com.blinkcoder.model.Blog; import com.blinkcoder.model.LuceneTask; import com.blinkcoder.search.SearchHelper; import com.jfinal.log.Logger; import org.quartz.Job; import org.quartz.JobExecutionContext; import java.io.IOException; import java.sql.Timestamp; import java.util.Arrays; import java.util.Date; import java.util.List; import static com.blinkcoder.model.LuceneTask.dao; /** * User: Michael Chen * Email: yidongnan@gmail.com * Date: 14-3-3 * Time: 下午12:21 */ public class LuceneJob implements Job { private static final Logger log = Logger.getLogger(LuceneJob.class); SearchHelper search = SearchKit.getHolder(); @Override public void execute(JobExecutionContext context) { List<LuceneTask> list = dao.list(); try { for (LuceneTask task : list) { Blog obj = task.object(); if (obj != null) { switch (task.getInt("opt")) { case LuceneTask.OPT_ADD: search.add(Arrays.asList(obj)); break; case LuceneTask.OPT_DELETE: search.delete(Arrays.asList(obj)); break; case LuceneTask.OPT_UPDATE: search.update(Arrays.asList(obj)); } task.set("status", 1).set("handle_time", new Timestamp(new Date().getTime())).Update(); } } } catch (IOException e) { log.error("obj to list is error" + e); } } }