提交 cac2b6b7 编写于 作者: Y youyong205

fix bug

上级 b98c720c
......@@ -3,6 +3,7 @@ package com.dianping.cat.consumer.dump;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
......@@ -17,7 +18,6 @@ import com.dianping.cat.Cat;
import com.dianping.cat.config.server.ServerConfigManager;
import com.dianping.cat.configuration.NetworkInterfaceManager;
import com.dianping.cat.hadoop.hdfs.HdfsUploader;
import com.dianping.cat.helper.TimeHelper;
import com.dianping.cat.message.Message;
import com.dianping.cat.message.Transaction;
import com.dianping.cat.message.storage.LocalMessageBucket;
......@@ -169,11 +169,15 @@ public class LogviewUploader implements Task {
@Override
public void run() {
boolean active = true;
long start = System.currentTimeMillis();
long current = start / 1000 / 60;
int min = (int) (current % (60));
while (active) {
long start = System.currentTimeMillis();
long current = start / 1000 / 60;
int min = (int) (current % (60));
Calendar nextStart = Calendar.getInstance();
nextStart.set(Calendar.MINUTE, 10);
nextStart.add(Calendar.HOUR, 1);
try {
if (m_configManager.isHdfsOn()) {
// make system 0-10 min is not busy
......@@ -194,10 +198,12 @@ public class LogviewUploader implements Task {
Cat.logError(e);
}
try {
long duration = System.currentTimeMillis() - start;
long sleepTime = TimeHelper.ONE_HOUR - (min - 10) * TimeHelper.ONE_MINUTE - duration;
long end = System.currentTimeMillis();
long sleepTime = nextStart.getTimeInMillis() - end;
Thread.sleep(sleepTime);
if (sleepTime > 0) {
Thread.sleep(sleepTime);
}
} catch (InterruptedException e) {
active = false;
}
......
......@@ -47,8 +47,8 @@ public class HdfsUploader implements LogEnabled, Initializable {
File parent = file.getParentFile();
file.delete();
parent.delete(); // delete it if empty
parent.getParentFile().delete(); // delete it if empty
parent.delete();
parent.getParentFile().delete();
}
@Override
......@@ -107,19 +107,19 @@ public class HdfsUploader implements LogEnabled, Initializable {
t.addData("speed", speed);
t.setStatus(Message.SUCCESS);
if (!file.delete()) {
m_logger.warn("Can't delete file: " + file);
}
deleteFile(path);
return true;
} catch (AlreadyBeingCreatedException e) {
Cat.logError(e);
t.setStatus(e);
deleteFile(path);
m_logger.error(String.format("Already being created (%s)!", path), e);
} catch (AccessControlException e) {
Cat.logError(e);
t.setStatus(e);
deleteFile(path);
m_logger.error(String.format("No permission to create HDFS file(%s)!", path), e);
} catch (Exception e) {
Cat.logError(e);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册