コード例 #1
0
test("legacy tho limit", function() {
	const {QUEUED, COMPLETE, FINISHING} = require("constants");
	const {LegacyScheduler, addLimit} = require("support/serverlimits");
	let limits = [];
	for (let host of serverlimits_generateHosts()) {
		let limit = addLimit(host.domain);
		limit.connections = host.num - 1;
		limit.save();
		limits.push(limit);
	}
	try {
		let queue = Array.from(serverlimits_generateQueue());
		let generated = [];
		var generator = new LegacyScheduler(queue);
		let gen;
		while (gen = generator.next()) {
			generated.push(gen);
		}
    let expected = queue.filter(e => e.state === QUEUED);
		deepEqual(generated, expected);
	}
	catch (ex) {
		limits.forEach(l => l.remove());
	}
});
コード例 #2
0
test("fast", function() {
	const {QUEUED, COMPLETE, FINISHING, RUNNING} = require("constants");
	const {FastScheduler, addLimit} = require("support/serverlimits");
	let limits = [];
	for (let host of serverlimits_generateHosts()) {
		let limit = addLimit(host.domain);
		limit.connections = host.num - 1;
		limit.save();
		limits.push(limit);
	}
	try {
		let queue = Array.from(serverlimits_generateQueue());
		let generated = [];
		var generator = new FastScheduler(queue);
		let gen;
		while (gen = generator.next(new Set(generated))) {
			gen.state = RUNNING;
			generated.push(gen);
		}
		let actual = generated.map(e => `${e.urlManager.domain}/${e.file}`);
		deepEqual(actual, [
			  "test2.host/file1",
			  "test3.host/file1",
			  "test3.host/file2",
			  "test4.host/file1",
			  "test4.host/file2",
			  "test4.host/file3",
			  "test5.host/file1",
			  "test5.host/file2",
			  "test5.host/file3",
			  "test5.host/file4",
			  "test6.host/file1",
			  "test6.host/file2",
			  "test6.host/file3",
			  "test6.host/file4",
			  "test7.host/file1",
			  "test7.host/file2",
			  "test7.host/file3",
			  "test7.host/file4",
			  "test8.host/file1",
			  "test8.host/file2",
			  "test8.host/file3",
			  "test8.host/file4"
		]);
	}
	catch (ex) {
		limits.forEach(l => l.remove());
	}
});