public class CursorFileManager implements CursorManager{public void write(String key, LongCursor cursor) throws IOException
{
File file = new File(key);
if (cursor == null) {
if (file.exists()) {
file.delete();
}
return;
} FileWriter fileWriter = null;
try {
fileWriter = new FileWriter(file);
JSON.writeJSONStringTo(cursor, fileWriter, new SerializerFeature[0]);
} catch (Exception e) {
this.logger.error(e.getMessage(), e);
} finally {
if (fileWriter != null)
fileWriter.close();
}
} public LongCursor read(String key){
JSONReader reader = null;
try {
File file = new File(key);
this.logger.info("try to read cursor from file={}", file.getAbsolutePath());
if (!file.exists()) {
return null;
}
reader = new JSONReader(new FileReader(file));
LongCursor cursor = (LongCursor)reader.readObject(LongCursor.class);
return cursor;
} catch (Exception e) {
this.logger.error(e.getMessage(), e);
} finally {
if (reader != null)
reader.close();
}
return null;
}

cursor格式:

{"biz":"false-0","extraInfo":1469203484000,"from":1469203208000,"to":1469203508000}

public LongCursor read() {
LongCursor cursor = cursorManager.read(cursorPath + "/" + fileName);
if (cursor != null) {
String biz = cursor.getBiz();
if (biz != null && biz.length() > 0) {
String[] secs = biz.split("-");
shouldWait = Boolean.parseBoolean(secs[0]);
if (secs.length > 1) {
completedOrderId = Long.valueOf(secs[1]);
}
}
}
return cursor;
} public void write(LongCursor cursor) throws IOException {
cursor.setBiz(shouldWait + "-" + completedOrderId);
cursorManager.write(cursorPath + "/" + fileName, cursor);
}

最新文章

  1. .Net语言 APP开发平台——Smobiler学习日志:快速实现应用中的图片、声音等文件上传功能
  2. Python安装pywinauto时遇到error: The read operation timed out解决方法
  3. Docker distrubution in django
  4. DLUTOJ 1209 字典序和r-子集
  5. python_递归
  6. Linux 配置网络
  7. 源码级分析Android系统启动流程
  8. ASP.NET入门(class0612)
  9. jQuery的选择器中的通配符[id^='code']或[name^='code']
  10. 在Unicode版Inno Setup中使用ISSkin给安装程序添加皮肤
  11. Java RMI(远程方法调用) 实例与分析 (转)
  12. Android L(5.0)源码之手势识别GestureDetector
  13. LODOP之票据连续套打笔记<二>
  14. 02-JAVA基础及面向对象(补充)
  15. Java-NIO(二):缓冲区(Buffer)的数据存取
  16. Django项目实践4 - Django站点管理(后台管理员)
  17. 搭建LNMP环境(CentOS 6)
  18. js 动画效果实现
  19. 破解Linux系统root用户密码
  20. Quartz Trigger Priority 触发器优先级

热门文章

  1. django 安装/部署过程
  2. java 基础--switch--003
  3. 导入导出SQL数据库
  4. WPF数据视图学习
  5. Eclipse闪退解决方案
  6. BZOJ 1296 粉刷匠(分组背包套DP)
  7. BZOJ 1036 树的统计(树链剖分)
  8. [洛谷P3878][TJOI2010]分金币
  9. BZOJ5319 & 洛谷4559 & LOJ2551:[JSOI2018]军训列队——题解
  10. BZOJ2693:JZPTAP——题解