use of java.sql.SQLException in project elastic-job by dangdangdotcom.
the class StatisticRdbRepository method getSummedTaskResultStatistics.
/**
* 获取合计后的任务运行结果统计数据.
*
* @param from 统计开始时间
* @param statisticInterval 统计时间间隔
* @return 合计后的任务运行结果统计数据对象
*/
public TaskResultStatistics getSummedTaskResultStatistics(final Date from, final StatisticInterval statisticInterval) {
TaskResultStatistics result = new TaskResultStatistics(0, 0, statisticInterval, new Date());
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sql = String.format("SELECT sum(success_count), sum(failed_count) FROM %s WHERE statistics_time >= '%s'", TABLE_TASK_RESULT_STATISTICS + "_" + statisticInterval, formatter.format(from));
try (Connection conn = dataSource.getConnection();
PreparedStatement preparedStatement = conn.prepareStatement(sql);
ResultSet resultSet = preparedStatement.executeQuery()) {
while (resultSet.next()) {
result = new TaskResultStatistics(resultSet.getInt(1), resultSet.getInt(2), statisticInterval, new Date());
}
} catch (final SQLException ex) {
// TODO 记录失败直接输出日志,未来可考虑配置化
log.error("Fetch summed taskResultStatistics from DB error:", ex);
}
return result;
}
use of java.sql.SQLException in project elastic-job by dangdangdotcom.
the class StatisticRdbRepository method findLatestJobRunningStatistics.
/**
* 获取最近一条运行中的任务统计数据.
*
* @return 运行中的任务统计数据对象
*/
public Optional<JobRunningStatistics> findLatestJobRunningStatistics() {
JobRunningStatistics result = null;
String sql = String.format("SELECT id, running_count, statistics_time, creation_time FROM %s order by id DESC LIMIT 1", TABLE_JOB_RUNNING_STATISTICS);
try (Connection conn = dataSource.getConnection();
PreparedStatement preparedStatement = conn.prepareStatement(sql);
ResultSet resultSet = preparedStatement.executeQuery()) {
while (resultSet.next()) {
result = new JobRunningStatistics(resultSet.getLong(1), resultSet.getInt(2), new Date(resultSet.getTimestamp(3).getTime()), new Date(resultSet.getTimestamp(4).getTime()));
}
} catch (final SQLException ex) {
// TODO 记录失败直接输出日志,未来可考虑配置化
log.error("Fetch latest jobRunningStatistics from DB error:", ex);
}
return Optional.fromNullable(result);
}
use of java.sql.SQLException in project elastic-job by dangdangdotcom.
the class StatisticRdbRepository method add.
/**
* 添加运行中的任务统计数据.
*
* @param taskRunningStatistics 运行中的任务统计数据对象
* @return 添加操作是否成功
*/
public boolean add(final TaskRunningStatistics taskRunningStatistics) {
boolean result = false;
String sql = "INSERT INTO `" + TABLE_TASK_RUNNING_STATISTICS + "` (`running_count`, `statistics_time`, `creation_time`) VALUES (?, ?, ?);";
try (Connection conn = dataSource.getConnection();
PreparedStatement preparedStatement = conn.prepareStatement(sql)) {
preparedStatement.setInt(1, taskRunningStatistics.getRunningCount());
preparedStatement.setTimestamp(2, new Timestamp(taskRunningStatistics.getStatisticsTime().getTime()));
preparedStatement.setTimestamp(3, new Timestamp(taskRunningStatistics.getCreationTime().getTime()));
preparedStatement.execute();
result = true;
} catch (final SQLException ex) {
// TODO 记录失败直接输出日志,未来可考虑配置化
log.error("Insert taskRunningStatistics to DB error:", ex);
}
return result;
}
use of java.sql.SQLException in project elastic-job by dangdangdotcom.
the class StatisticRdbRepository method findJobRunningStatistics.
/**
* 获取运行中的任务统计数据集合.
*
* @param from 统计开始时间
* @return 运行中的任务统计数据集合
*/
public List<JobRunningStatistics> findJobRunningStatistics(final Date from) {
List<JobRunningStatistics> result = new LinkedList<>();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sql = String.format("SELECT id, running_count, statistics_time, creation_time FROM %s WHERE statistics_time >= '%s' order by id ASC", TABLE_JOB_RUNNING_STATISTICS, formatter.format(from));
try (Connection conn = dataSource.getConnection();
PreparedStatement preparedStatement = conn.prepareStatement(sql);
ResultSet resultSet = preparedStatement.executeQuery()) {
while (resultSet.next()) {
JobRunningStatistics jobRunningStatistics = new JobRunningStatistics(resultSet.getLong(1), resultSet.getInt(2), new Date(resultSet.getTimestamp(3).getTime()), new Date(resultSet.getTimestamp(4).getTime()));
result.add(jobRunningStatistics);
}
} catch (final SQLException ex) {
// TODO 记录失败直接输出日志,未来可考虑配置化
log.error("Fetch jobRunningStatistics from DB error:", ex);
}
return result;
}
use of java.sql.SQLException in project elastic-job by dangdangdotcom.
the class StatisticRdbRepository method findTaskResultStatistics.
/**
* 获取任务运行结果统计数据集合.
*
* @param from 统计开始时间
* @param statisticInterval 统计时间间隔
* @return 任务运行结果统计数据集合
*/
public List<TaskResultStatistics> findTaskResultStatistics(final Date from, final StatisticInterval statisticInterval) {
List<TaskResultStatistics> result = new LinkedList<>();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sql = String.format("SELECT id, success_count, failed_count, statistics_time, creation_time FROM %s WHERE statistics_time >= '%s' order by id ASC", TABLE_TASK_RESULT_STATISTICS + "_" + statisticInterval, formatter.format(from));
try (Connection conn = dataSource.getConnection();
PreparedStatement preparedStatement = conn.prepareStatement(sql);
ResultSet resultSet = preparedStatement.executeQuery()) {
while (resultSet.next()) {
TaskResultStatistics taskResultStatistics = new TaskResultStatistics(resultSet.getLong(1), resultSet.getInt(2), resultSet.getInt(3), statisticInterval, new Date(resultSet.getTimestamp(4).getTime()), new Date(resultSet.getTimestamp(5).getTime()));
result.add(taskResultStatistics);
}
} catch (final SQLException ex) {
// TODO 记录失败直接输出日志,未来可考虑配置化
log.error("Fetch taskResultStatistics from DB error:", ex);
}
return result;
}
Aggregations