zoukankan      html  css  js  c++  java
  • CursorFileManager对cursor文件的读写

    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);
    }
  • 相关阅读:
    Liunx安装MQTT服务器
    ORACLE 把一个用户的权限给与另一个用户
    liunx 后台运行python代码
    ORACLE APEX 交互式网格动态操作
    oracle 创建表字段
    oracle 触发器
    ORACLE 程序包
    ORACLE 游标基本使用
    oracle 不等于 查询列中含有null
    liunx安装oracle 客户端
  • 原文地址:https://www.cnblogs.com/ShanHeDiao/p/5889580.html
Copyright © 2011-2022 走看看