• 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);
    }
  • 相关阅读:
    上一篇、下一篇之实现思路
    sql优化
    简易的文件上传 tp5
    phpqrcode生成二维码
    php 发送邮件(2)qq邮箱开通
    php 发送邮件(1)代码逻辑
    SELECT list is not in GROUP BY clause and contains nonaggregated
    TP5 未定义变量:XXX
    CentOS 7下载
    FFT算法实现——基于GPU的基2快速傅里叶变换
  • 原文地址:https://www.cnblogs.com/ShanHeDiao/p/5889580.html
Copyright © 2020-2023  润新知