📄 bdbqueueimpl.java
字号:
package com.queue.impl;
import java.io.Serializable;
import java.util.Iterator;
import java.util.Map;
import org.apache.log4j.Logger;
import com.cache.bdb.BDBCacheManager;
import com.cache.behavior.ICache;
import com.queue.IBDBQueue;
import com.sleepycat.je.DatabaseException;
import com.util.KeyGenerator;
public class BDBQueueImpl implements IBDBQueue {
Logger log = Logger.getLogger(BDBQueueImpl.class);
private BDBCacheManager bdbManager;
public BDBQueueImpl() {
bdbManager = BDBCacheManager.getInstance();
}
public BDBQueueImpl(BDBCacheManager bdbManager, String region) {
this.bdbManager = bdbManager;
}
public void put(Object obj, String region) {
ICache cache = this.getCache(region);
if (cache != null && obj!=null) {
Long key = KeyGenerator.generateKey();
cache.put(key, obj);
}
}
public void put(Serializable key, Object obj, String region) {
ICache cache = this.getCache(region);
if (cache != null && obj!=null) {
cache.put(key, obj);
}
}
public Object get(Serializable key, String region) {
ICache cache = this.getCache(region);
Object mess = null;
if (cache != null) {
mess = (Object) cache.get(key);
}
return mess;
}
public Map get(int count, String region) {
ICache cache = this.getCache(region);
Map messages = null;
if (cache != null) {
messages = cache.next(count);
}
return messages;
}
public Serializable remove(Serializable key, String region) {
ICache cache = this.getCache(region);
if (cache != null) {
cache.remove(key);
}
return key;
}
public void remove(Map m, String region) {
ICache cache = this.getCache(region);
if ((m != null) && (cache != null)) {
Iterator iter = m.keySet().iterator();
while (iter.hasNext()) {
cache.remove(iter.next());
}
}
}
private ICache getCache(String region) {
ICache cache = null;
if (bdbManager != null) {
try {
cache = bdbManager.buildCache(region, null, null, null);
} catch (Exception ex) {
log.error("Create bdb cache: " + region + " failed...");
}
}
return cache;
}
public BDBCacheManager getBdbManager() {
return bdbManager;
}
public void setBdbManager(BDBCacheManager bdbManager) {
this.bdbManager = bdbManager;
}
public void close() {
try {
bdbManager.close();
log.info("Closing bdb cache: ok");
} catch (DatabaseException ex) {
log.error("Error occured while closing bdb cache...\n" + ex);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -