diff --git a/lib/cleaner.js b/lib/cleaner.js deleted file mode 100644 index 21c032d..0000000 --- a/lib/cleaner.js +++ /dev/null @@ -1,126 +0,0 @@ -var logging = require("./logging"); -var config = require("../config"); -var cache = require("./cache"); -var path = require("path"); -var df = require("node-df"); -var fs = require("fs"); - -var redis = cache.get_redis(); -var exp = {}; - -// does nothing -function nil() {} - -// compares redis' used_memory with cleaning_redis_limit -// callback: error, true|false -function should_clean_redis(callback) { - cache.info(function(err, info) { - if (err) { - callback(err, false); - } else { - try { - // logging.debug(info.toString()); - var used = parseInt(info.used_memory) / 1024; - var result = used >= config.cleaner.redis_limit; - var msg = "RedisCleaner: " + used + "KB used"; - (result ? logging.log : logging.debug)(msg); - callback(err, result); - } catch(e) { - callback(e, false); - } - } - }); -} - -// uses `df` to get the available fisk space -// callback: error, true|false -function should_clean_disk(callback) { - df({ - file: config.directories.faces, - prefixMultiplier: "KiB", - isDisplayPrefixMultiplier: false, - precision: 2 - }, function(err, response) { - if (err) { - callback(err, false); - } else { - var available = response[0].available; - var result = available < config.cleaner.disk_limit; - var msg = "DiskCleaner: " + available + "KB available"; - (result ? logging.log : logging.debug)(msg); - callback(err, result); - } - }); -} - -// check if redis limit reached, then flush redis -// check if disk limit reached, then delete images -exp.run = function() { - 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 DiskCleaner"); - logging.error(err); - } else if (clean) { - logging.warn("DiskCleaner: Disk limit reached! Cleaning images now"); - - // hotfix for #139 | FIXME - logging.warn("DiskCleaner: Flushing Redis to prevent ENOENT"); - redis.flushall(); - // end hotfix - - var skinsdir = config.directories.skins; - var capesdir = config.directories.capes; - var facesdir = config.directories.faces; - var helmsdir = config.directories.helms; - var rendersdir = config.directories.renders; - fs.readdir(skinsdir, function(readerr, files) { - if (!readerr) { - for (var i = 0, l = Math.min(files.length, config.cleaner.amount); i < l; i++) { - var filename = files[i]; - if (filename[0] !== ".") { - fs.unlink(path.join(facesdir, filename), nil); - fs.unlink(path.join(helmsdir, filename), nil); - fs.unlink(path.join(skinsdir, filename), nil); - } - } - } - }); - fs.readdir(rendersdir, function(readerr, files) { - if (!readerr) { - for (var j = 0, l = Math.min(files.length, config.cleaner.amount); j < l; j++) { - var filename = files[j]; - if (filename[0] !== ".") { - fs.unlink(rendersdir + filename, nil); - } - } - } - }); - fs.readdir(capesdir, function(readerr, files) { - if (!readerr) { - for (var j = 0, l = Math.min(files.length, config.cleaner.amount); j < l; j++) { - var filename = files[j]; - if (filename[0] !== ".") { - fs.unlink(capesdir + filename, nil); - } - } - } - }); - } else { - logging.log("DiskCleaner: Nothing to clean"); - } - }); -}; - -module.exports = exp; \ No newline at end of file diff --git a/package.json b/package.json index 3e4acba..2a85244 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,6 @@ "ejs": "^3.0.1", "@randy.tarampi/lwip": "^1.1.0", "mime": "^2.4.4", - "node-df": "crafatar/node-df", "redis": "^3.0.2", "request": "^2.88.2", "toobusy-js": "^0.5.1" diff --git a/test/test.js b/test/test.js index b6956be..3afcf24 100644 --- a/test/test.js +++ b/test/test.js @@ -9,7 +9,6 @@ if (process.env.VERBOSE_TEST !== "true" && process.env.TRAVIS !== "true") { var networking = require("../lib/networking"); var helpers = require("../lib/helpers"); -var cleaner = require("../lib/cleaner"); var request = require("request"); var config = require("../config"); var server = require("../lib/server"); @@ -68,10 +67,6 @@ describe("Crafatar", function() { console.log("Flushing and waiting for redis ..."); cache.get_redis().flushall(function() { console.log("Redis flushed!"); - // cause I don't know how big hard drives are these days - config.cleaner.disk_limit = Infinity; - config.cleaner.redis_limit = Infinity; - cleaner.run(); done(); }); }); diff --git a/www.js b/www.js index 2a52daf..328099c 100644 --- a/www.js +++ b/www.js @@ -1,5 +1,4 @@ var logging = require("./lib/logging"); -var cleaner = require("./lib/cleaner"); var config = require("./config"); process.on("uncaughtException", function(err) { @@ -7,6 +6,4 @@ process.on("uncaughtException", function(err) { process.exit(1); }); -setInterval(cleaner.run, config.cleaner.interval * 1000); - require("./lib/server.js").boot(); \ No newline at end of file