KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > bluecubs > xinco > index > XincoIndexOptimizeThread


1 /**
2  *Copyright 2005 blueCubs.com
3  *
4  *Licensed under the Apache License, Version 2.0 (the "License");
5  *you may not use this file except in compliance with the License.
6  *You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *Unless required by applicable law or agreed to in writing, software
11  *distributed under the License is distributed on an "AS IS" BASIS,
12  *WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *See the License for the specific language governing permissions and
14  *limitations under the License.
15  *
16  *************************************************************
17  * This project supports the blueCubs vision of giving back
18  * to the community in exchange for free software!
19  * More information on: http://www.bluecubs.org
20  *************************************************************
21  *
22  * Name: XincoIndexOptimizeThread
23  *
24  * Description: handle optimizing in thread
25  *
26  * Original Author: Alexander Manes
27  * Date: 2005/01/19
28  *
29  * Modifications:
30  *
31  * Who? When? What?
32  * - - -
33  *
34  *************************************************************
35  */

36
37 package com.bluecubs.xinco.index;
38
39 import java.util.Calendar JavaDoc;
40 import java.util.GregorianCalendar JavaDoc;
41
42 import com.bluecubs.xinco.index.XincoIndexer;
43 import com.bluecubs.xinco.core.server.XincoDBManager;
44
45 /**
46  * This class runs index optimizing in a separate thread
47  * (only one thread is allowed)
48  */

49 public class XincoIndexOptimizeThread extends Thread JavaDoc {
50     
51     public static XincoIndexOptimizeThread instance = null;
52     
53     public Calendar JavaDoc firstRun = null;
54     public Calendar JavaDoc lastRun = null;
55     
56     public void run() {
57         firstRun = new GregorianCalendar JavaDoc();
58         while (true) {
59             try {
60                 XincoDBManager dbm = null;
61                 dbm = new XincoDBManager();
62                 XincoIndexer.optimizeIndex(dbm);
63                 lastRun = new GregorianCalendar JavaDoc();
64                 dbm.con.close();
65                 dbm = null;
66             } catch (Exception JavaDoc e){
67                 //continue, wait and try again...
68
}
69             try {
70                 Thread.sleep(14400000); //4 hours
71
} catch (Exception JavaDoc se) {
72                 break;
73             }
74         }
75     }
76     
77     public static XincoIndexOptimizeThread getInstance() {
78         if (instance == null) {
79             instance = new XincoIndexOptimizeThread();
80         }
81         return instance;
82     }
83     
84     private XincoIndexOptimizeThread() {
85     }
86     
87 }
88
Popular Tags