|
@@ -1,13 +1,35 @@
|
|
|
var logging = require("./logging");
|
|
|
var config = require("./config");
|
|
|
+var cache = require("./cache");
|
|
|
var df = require("node-df");
|
|
|
var fs = require("fs");
|
|
|
|
|
|
+var redis = cache.get_redis();
|
|
|
var exp = {};
|
|
|
|
|
|
+// compares redis' used_memory with cleaning_redis_limit
|
|
|
+// callback contains error, true|false
|
|
|
+function should_clean_redis(callback) {
|
|
|
+ cache.info(function(err, info) {
|
|
|
+ if (err) {
|
|
|
+ callback(err, false);
|
|
|
+ } else {
|
|
|
+ try {
|
|
|
+ logging.debug(info);
|
|
|
+ logging.debug("used mem:" + info.used_memory);
|
|
|
+ var used = parseInt(info.used_memory) / 1024;
|
|
|
+ logging.log("RedisCleaner: " + used + "KB used");
|
|
|
+ callback(err, used >= config.cleaning_redis_limit);
|
|
|
+ } catch(e) {
|
|
|
+ callback(e, false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
// uses `df` to get the available fisk space
|
|
|
// callback contains error, true|false
|
|
|
-function should_clean(callback) {
|
|
|
+function should_clean_disk(callback) {
|
|
|
df({
|
|
|
file: __dirname + "/../" + config.faces_dir,
|
|
|
prefixMultiplier: 'KiB',
|
|
@@ -18,21 +40,33 @@ function should_clean(callback) {
|
|
|
callback(err, false);
|
|
|
} else {
|
|
|
var available = response[0].available;
|
|
|
- console.log("ImageCleaner: " + available + "KB available");
|
|
|
- callback(err, available < config.cleaning_limit);
|
|
|
+ logging.log("DiskCleaner: " + available + "KB available");
|
|
|
+ callback(err, available < config.cleaning_disk_limit);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
-// check if disk limit reached
|
|
|
-// then delete images
|
|
|
+// check if redis limit reached, then flush redis
|
|
|
+// check if disk limit reached, then delete images
|
|
|
exp.run = function() {
|
|
|
- should_clean(function(err, clean) {
|
|
|
+ should_clean_redis(function(err, clean) {
|
|
|
+ if (err) {
|
|
|
+ logging.error("Failed to run RedisCleaner");
|
|
|
+ logging.error(err);
|
|
|
+ } else if (clean) {
|
|
|
+ logging.warn("RedisCleaner: Redis limit reached! flushing now");
|
|
|
+ redis.flushall();
|
|
|
+ } else {
|
|
|
+ logging.log("RedisCleaner: Nothing to clean");
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ should_clean_disk(function(err, clean) {
|
|
|
if (err) {
|
|
|
- logging.error("Failed to run ImageCleaner");
|
|
|
+ logging.error("Failed to run DiskCleaner");
|
|
|
logging.error(err);
|
|
|
} else if (clean) {
|
|
|
- logging.warn("ImageCleaner: Disk limit reached! Cleaning images now");
|
|
|
+ logging.warn("DiskCleaner: Disk limit reached! Cleaning images now");
|
|
|
var facesdir = __dirname + "/../" + config.faces_dir;
|
|
|
var helmdir = __dirname + "/../" + config.helms_dir;
|
|
|
var renderdir = __dirname + "/../" + config.renders_dir;
|
|
@@ -54,7 +88,7 @@ exp.run = function() {
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- logging.log("ImageCleaner: Nothing to clean");
|
|
|
+ logging.log("DiskCleaner: Nothing to clean");
|
|
|
}
|
|
|
});
|
|
|
};
|