EasyDSS流媒体解决方案之直播录像清理

来源:互联网 发布:vb对皮肤瘙痒有用吗 编辑:程序博客网 时间:2024/05/21 15:41

EasyDSS_Solution直播录像清理

直播录像,可以根据配置将过期的录像清理,支持如下条件:

  1. 设定自动删除录像的时间,单位(天);
  2. 每次启动服务后,一分钟后如果开启清理都会检查清理;
  3. 默认设定每天凌晨3点执行检查清理任务;
  4. 更新参数设定时,都会会在一分钟内判断执行一次检查清理;
  5. 默认是关闭直播录像清理;

    这样可以解决几种场景
    (1)凌晨执行,降低资源消耗;
    (2)改变参数时检查,可以根据最新参数清理无效录像文件,及时减少空间;
    (3)启动服务自动检测,及时减少空间;

下面会讲下操作设定,及相关的一些编码实现;

1. 参数设定

默认参数是0,默认关闭录像清理
这里写图片描述

这里写图片描述

2.相关编码

2.1.定时任务

 setInterval(function() {        //每分钟执行一次,判读是否到凌晨3点        if (currentLiveRecordDays != parseInt(global.live_record_days)) {            //第一次启动后一分钟执行            currentLiveRecordDays = parseInt(global.live_record_days);            if (currentLiveRecordDays != 0) {                removeRecordFile();            }        } else {            if (currentLiveRecordDays != 0) {                //判读是否达到时间                if (!isStartRecordRemove && parseInt(util.dateFormat(new Date(), "hh")) == 3) {                    isStartRecordRemove = true;                    removeRecordFile();                }                if (isStartRecordRemove && parseInt(util.dateFormat(new Date(), "hh")) != 3) {                    isStartRecordRemove = false;                }            }        }    }, 60000);

2.2.比较日期,判断是否过期

function isOverdue(yyyyMMdd) {    var days = currentLiveRecordDays;    var tNow = new Date().getTime();    var yyyy = parseInt(yyyyMMdd.substring(0, 4));    var mm = parseInt(yyyyMMdd.substring(4, 6)) - 1;    var dd = parseInt(yyyyMMdd.substring(6));    var tFile = new Date(yyyy, mm, dd).getTime();    var t = tNow - tFile;    return t >= days * 3600 * 24 * 1000;}

2.3.删除录像文件方法

遍历删除文件夹里所有子文件

var deleteFolder = function(path) {    var files = [];    if (fs.existsSync(path)) {        files = fs.readdirSync(path);        files.forEach(function(file, index) {            var curPath = path + "/" + file;            if (fs.statSync(curPath).isDirectory()) {                deleteFolder(curPath);            } else {                 fs.unlinkSync(curPath);            }        });        fs.rmdirSync(path);    }};

感谢你的阅读,更多内容会不断分享~

获取更多信息

QQ交流群:560148162

WEB:www.easydss.com

Copyright © EasyDSS.com 2012-2017

阅读全文
0 0
原创粉丝点击