/**
* 2011-8-11 下午03:51:09
*/
package com.cwa.log.queue.persistence;
import java.util.HashMap;
import java.util.Map;
import java.util.Queue;
import java.util.zip.Deflater;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.cwa.log.manage.Config;
import com.cwa.log.mongo.StorageManager;
import com.cwa.log.queue.domain.BaseLog;
import com.mongodb.util.Hash;
/**
* @author Pai
* @descirption 从队列存入MongoDB
* 12.12.24
*/
public class LogDAO {
private final static Logger logger = LoggerFactory.getLogger(LogDAO.class);
public LogDAO() {
// super(daoManager);
}
public void batchSave(Queue<BaseLog> logQueue) {
// logger.error("batchSave");
if (logQueue == null)
return;
long startTime = System.currentTimeMillis();
int queueSize = logQueue.size();
if (queueSize == 0)
return;
int insertNum = 0;
for (int i = 0; i < queueSize; i++) {
BaseLog log = logQueue.poll();
if (log == null) {
logger.error("[记录日志] null");
break;
}
insertNum++;
save(log);
}
long logTime = System.currentTimeMillis() - startTime;
logger.error("[记录日志] [大小:" + insertNum + "] [时间:" + logTime + "]");
}
private void save(BaseLog log) {
// try {
// logger.error("gamelog try write queue{},{}, {}", log.getUserId()
// + " " + log.getCmdId(), log.getGameLog());
String colName = log.getColName();
String gameLog = log.getGameLog();
StorageManager.getInstance(Config.mongodb_ip, Config.mongodb_port, Config.GAME_NAME,Config.mongodb_poolsize).saveStorage(
colName, gameLog);
// logger.error("gamelog write queue over" + colName
// + log.getGameLog());
// // StorageManager.
// // String saveMethod = "insert" + log.getClass().getSimpleName();
// // insert(saveMethod, log);
// } catch (Exception e) {
// // logger.error("saveLog", e);
// e.printStackTrace();
// }
}
}