@Test
public void testAppendShutdownLoadRecover() throws Exception {
this.recoverStorageManager.shutdown();
final MetaClientConfig metaClientConfig = new MetaClientConfig();
metaClientConfig.setRecoverMessageIntervalInMills(Integer.MAX_VALUE);
this.recoverStorageManager = new RecoverStorageManager(metaClientConfig, this.subscribeInfoManager);
this.recoverStorageManager.start(metaClientConfig);
final String group = "dennis";
final BlockingQueue<Message> queue = new ArrayBlockingQueue<Message>(1024);
this.subscribeInfoManager.subscribe("test", group, 1024 * 1024, new MessageListener() {
@Override
public void recieveMessages(final Message message) {
queue.offer(message);
}
@Override
public Executor getExecutor() {
return null;
}
}, null);
for (int i = 0; i < 100; i++) {
final Message msg2 = new Message("test", ("hello" + i).getBytes());
MessageAccessor.setId(msg2, i);
this.recoverStorageManager.append(group, msg2);
}
this.recoverStorageManager.shutdown();
// ��������������recover���Ϊ1��
metaClientConfig.setRecoverMessageIntervalInMills(1000);
this.recoverStorageManager = new RecoverStorageManager(metaClientConfig, this.subscribeInfoManager);
this.recoverStorageManager.start(metaClientConfig);
while (queue.size() < 100) {
Thread.sleep(1000);
}