¡¡¡¡ÓÐʱҪΪÿһƪÎÄÕÂͳ¼ÆÆäµã»÷´ÎÊý£¬Èç¹ûÿһ´Îä¯ÀÀ¶¼Òª¸üÐÂÒ»´Î¿âµÄ»°£¬ÄÇÐÔÄÜÔÚ·ÃÎÊÁ¿ºÜ´óµÄÇé¿öÏ£¬·þÎñÆ÷µÄѹÁ¦¾Í»áºÜ´óÁË£¬±È½ÏºÃÒ»µãµÄ·½·¨¾ÍÊÇÏȽ«Òª¸üеÄÊý¾Ý»º´æÆðÀ´£¬È»ºóÿ¸ôÒ»¶Îʱ¼äÔÙÀûÓÃÊý¾Ý¿âµÄÅúÁ¿´¦Àí£¬ÅúÁ¿¸üп⡣ԴÂëÈçÏ£º
CountBean.java
/*
* CountData.java
*
* Created on 2006Äê10ÔÂ18ÈÕ, ÏÂÎç4:44
*
* To change this template, choose Tools | Options and locate the template under
* the Source Creation and Management node. Right-click the template and choose
* Open. You can then make changes to the template in the Source Editor.
*/
¡¡¡¡package com.tot.count;
/**
*
* @author http://www.tot.name
*/
public class CountBean {
¡¡PRivate String countType;
¡¡int countId;
¡¡/** Creates a new instance of CountData */
¡¡public CountBean() {}
¡¡public void setCountType(String countTypes){
¡¡¡¡this.countType=countTypes;
¡¡}
¡¡public void setCountId(int countIds){
¡¡¡¡this.countId=countIds;
¡¡}
¡¡public String getCountType(){
¡¡¡¡return countType;
¡¡}
¡¡public int getCountId(){
¡¡¡¡return countId;
¡¡}
}
¡¡¡¡CountCache.java
/*
* CountCache.java
*
* Created on 2006Äê10ÔÂ18ÈÕ, ÏÂÎç5:01
*
* To change this template, choose Tools | Options and locate the template under
* the Source Creation and Management node. Right-click the template and choose
* Open. You can then make changes to the template in the Source Editor.
*/
package com.tot.count;
import java.util.*;
/**
*
* @author http://www.tot.name
*/
public class CountCache {
¡¡public static LinkedList list=new LinkedList();
¡¡/** Creates a new instance of CountCache */
¡¡public CountCache() {}
¡¡public static void add(CountBean cb){
¡¡¡¡if(cb!=null){
¡¡¡¡¡¡list.add(cb);
¡¡¡¡}
¡¡}
}
¡¡CountControl.java
¡¡/*
¡¡* CountThread.java
¡¡*
¡¡* Created on 2006Äê10ÔÂ18ÈÕ, ÏÂÎç4:57
¡¡*
¡¡* To change this template, choose Tools | Options and locate the template under
¡¡* the Source Creation and Management node. Right-click the template and choose
¡¡* Open. You can then make changes to the template in the Source Editor.
¡¡*/
package com.tot.count;
import tot.db.DBUtils;
import java.sql.*;
/**
*
* @author http://www.tot.name
*/
public class CountControl{
¡¡private static long lastExecuteTime=0;//ÉϴθüÐÂʱ¼ä¡¡
¡¡private static long executeSep=60000;//¶¨Òå¸üмä¸ôʱ¼ä£¬µ¥Î»ºÁÃë
¡¡/** Creates a new instance of CountThread */
¡¡public CountControl() {}
¡¡public synchronized void executeUpdate(){
¡¡¡¡Connection conn=null;
¡¡¡¡PreparedStatement ps=null;
¡¡¡¡try{
¡¡¡¡¡¡conn = DBUtils.getConnection();
¡¡¡¡¡¡conn.setAutoCommit(false);
¡¡¡¡¡¡ps=conn.prepareStatement("update t_news set hits=hits+1 where id=?");
¡¡¡¡¡¡for(int i=0;i£¼CountCache.list.size();i++){
¡¡¡¡¡¡¡¡CountBean cb=(CountBean)CountCache.list.getFirst();
¡¡¡¡¡¡¡¡CountCache.list.removeFirst();
¡¡¡¡¡¡¡¡ps.setInt(1, cb.getCountId());
¡¡¡¡¡¡¡¡ps.executeUpdate();¢Å
¡¡¡¡¡¡¡¡//ps.addBatch();¢Æ
¡¡¡¡¡¡}
¡¡¡¡¡¡//int [] counts = ps.executeBatch();¢Ç
¡¡¡¡¡¡conn.commit();
¡¡¡¡}catch(Exception e){
¡¡¡¡¡¡e.printStackTrace();
¡¡¡¡} finally{
¡¡¡¡try{
¡¡¡¡¡¡if(ps!=null) {
¡¡¡¡¡¡¡¡ps.clearParameters();
ps.close();
ps=null;
¡¡¡¡}
¡¡}catch(SQLException e){}
¡¡DBUtils.closeConnection(conn);
¡¡}
}
public long getLast(){
¡¡return lastExecuteTime;
}
public void run(){
¡¡long now = System.currentTimeMillis();
¡¡if ((now - lastExecuteTime) £¾ executeSep) {
¡¡¡¡//System.out.print("lastExecuteTime:"+lastExecuteTime);
¡¡¡¡//System.out.print(" now:"+now+"\n");
¡¡¡¡// System.out.print(" sep="+(now - lastExecuteTime)+"\n");
¡¡¡¡lastExecuteTime=now;
¡¡¡¡executeUpdate();
¡¡}
¡¡else{
¡¡¡¡//System.out.print("wait for "+(now - lastExecuteTime)+" seconds:"+"\n");
¡¡}
}
}
//×¢£ºÈç¹ûÄãµÄÊý¾Ý¿âÇý¶¯Ö§³ÖÅú´¦Àí£¬ÄÇô¿ÉÒÔ½«¢Æ,¢Ç±ê¼ÇµÄ´úÂëÇ°µÄ×¢ÊÍÈ¥µô£¬Í¬Ê±ÔÚ´úÂë¢ÅÇ°¼ÓÉÏ×¢ÊÍ
¡¡¡¡ÀàдºÃÁË£¬ÏÂÃæÊÇÔÚjspÖÐÈçϵ÷Óá£
£¼% CountBean cb=new CountBean(); cb.setCountId(Integer.parseInt(request.getParameter("cid"))); CountCache.add(cb); out.print(CountCache.list.size()+"£¼br£¾"); CountControl c=new CountControl(); c.run(); out.print(CountCache.list.size()+"£¼br£¾"); %£¾
ÍƼöÐÅÏ¢
- ÔÝÎ޼Ǽ
ÈÈÃÅÐÅÏ¢
- nohup: redirecting stderr to stdou....
- ʹÓÃlog_formatΪNginx·þÎñÆ÷ÉèÖøüÏêϸµÄÈÕÖ¾¸ñʽ
- jquery easyUI--dataGrid-Json
- [Ô´´]·ÂGoogle Reader¡¢ÐÂÀË΢²©¡¢ÌÚѶ΢²©µ....
- ÀûÓÃKeepalived+mysql¹¹½¨¸ß¿ÉÓÃMySQLË«Ö÷×Ô¶....
- Nginx+keepalivedʵÏÖ¸ºÔؾùºâºÍË«»úÈȱ¸¸ß¿ÉÓÃ
- jqueryʵÏÖÒ³Ãæ¼ÓÔؽø¶ÈÌõ
- Rolling cURL: PHP²¢·¢×î¼Ñʵ¼ù
- codeigniter ·ÓÉÖÕ¼«ÓÅ»¯(url rewrite)
- linuxÏÂÉèÖÃsshÎÞÃÜÂëµÇ¼
×î½ü¸üÐÂ
- java urlÖØд¼¼Êõ(UrlReWriter)
- [ת]JavaµÄÊý×飨Array£©¡¢Vector¡¢ArrayLis....
- jsp»·¾³ÏÂajaxÂÒÂëÎÊÌâµÄ½â¾ö
- JSP¼¼Êõ Ö¸Áî ÂÒÂëÎÊÌâ ÔËÐÐÔÀíºÍ¾Å´óÒþʽ¶ÔÏó web¿ª·¢µÄË....
- JAVA ˮӡ ͼƬ ÎÄ×Ö
- java¶þ½øÖÆ£¬ÔÂë¡¢·´Âë¡¢²¹Â롢λÔËËã
- Java WebÓ¦ÓÃÆô¶¯¼ä¸ôÖ´ÐеijÌÐò
- jspÉú³ÉxmlÎļþʾÀý
- javaÖÐÀà±äÁ¿¡¢Àà·½·¨¡¢ÊµÀý±äÁ¿¡¢ÊµÀý·½·¨
- JSPÒ³ÃæµÄÎåÖÖÌøת·½·¨
ÆÀÂÛ