mirror of
https://github.com/azures04/crafatar.git
synced 2026-03-21 23:41:18 +01:00
remove cleaner.js
This commit is contained in:
parent
b7c6f7dae1
commit
c975cc793b
126
lib/cleaner.js
126
lib/cleaner.js
@ -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;
|
|
||||||
@ -39,7 +39,6 @@
|
|||||||
"ejs": "^3.0.1",
|
"ejs": "^3.0.1",
|
||||||
"@randy.tarampi/lwip": "^1.1.0",
|
"@randy.tarampi/lwip": "^1.1.0",
|
||||||
"mime": "^2.4.4",
|
"mime": "^2.4.4",
|
||||||
"node-df": "crafatar/node-df",
|
|
||||||
"redis": "^3.0.2",
|
"redis": "^3.0.2",
|
||||||
"request": "^2.88.2",
|
"request": "^2.88.2",
|
||||||
"toobusy-js": "^0.5.1"
|
"toobusy-js": "^0.5.1"
|
||||||
|
|||||||
@ -9,7 +9,6 @@ if (process.env.VERBOSE_TEST !== "true" && process.env.TRAVIS !== "true") {
|
|||||||
|
|
||||||
var networking = require("../lib/networking");
|
var networking = require("../lib/networking");
|
||||||
var helpers = require("../lib/helpers");
|
var helpers = require("../lib/helpers");
|
||||||
var cleaner = require("../lib/cleaner");
|
|
||||||
var request = require("request");
|
var request = require("request");
|
||||||
var config = require("../config");
|
var config = require("../config");
|
||||||
var server = require("../lib/server");
|
var server = require("../lib/server");
|
||||||
@ -68,10 +67,6 @@ describe("Crafatar", function() {
|
|||||||
console.log("Flushing and waiting for redis ...");
|
console.log("Flushing and waiting for redis ...");
|
||||||
cache.get_redis().flushall(function() {
|
cache.get_redis().flushall(function() {
|
||||||
console.log("Redis flushed!");
|
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();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
3
www.js
3
www.js
@ -1,5 +1,4 @@
|
|||||||
var logging = require("./lib/logging");
|
var logging = require("./lib/logging");
|
||||||
var cleaner = require("./lib/cleaner");
|
|
||||||
var config = require("./config");
|
var config = require("./config");
|
||||||
|
|
||||||
process.on("uncaughtException", function(err) {
|
process.on("uncaughtException", function(err) {
|
||||||
@ -7,6 +6,4 @@ process.on("uncaughtException", function(err) {
|
|||||||
process.exit(1);
|
process.exit(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
setInterval(cleaner.run, config.cleaner.interval * 1000);
|
|
||||||
|
|
||||||
require("./lib/server.js").boot();
|
require("./lib/server.js").boot();
|
||||||
Loading…
x
Reference in New Issue
Block a user