Használja az összes CPU-t a klaszter módban
Egy Node.js-folyamat egyetlen CPU-magot használ. A Total.run({ cluster: N }) elindít egy mastert, amely N worker folyamatot hoz létre, mindegyik a teljes alkalmazásodat futtatja, a bejövő kapcsolatokat pedig az operációs rendszer osztja el közöttük (szám helyett az 'auto' hagyja, hogy a master a terhelés növekedésével szálakat adjon hozzá). Release módban futtasd (release: true, amit a generált indítóscript a --release kapcsolóval állít be); a debug mód watchere nem clusterhez készült. Az indítóscriptben ez egyetlen opció:
Total.run({ cluster: 4, release: true }); // or cluster: 'auto'Minden worker külön folyamat saját memóriával, ezért minden, amit változóban, a CACHE-ben vagy a MEMORIZE-ban tartasz, workerenként egyszer létezik, és nincs megosztva: ugyanazon felhasználó két kérése különböző workerre kerülhet. A közös állapotot adatbázisban, fájltárolóban vagy üzenetszolgáltatásban tartsd, a munkameneteket pedig olyan tárolóban, amelyet minden worker olvashat. Az ütemezett feladatok, például a CRON(), szintén minden workerben futnak, ezért védd őket, ha csak egyszer szabad lefutniuk.
Ellenőrizd, hogy minden worker fut. Telepítés után kérj le többször egy /pid/-hoz hasonló URL-t az alábbiak szerint, és számold meg a különböző azonosítókat: annyinak kell lennie, ahány workert kértél.
Minden munkásnak megvan a maga eljárási azonosítója.A példa két munkát indít, és ezt az azonosítót tartalmazza a válaszban.
exports.install = function() {
ROUTE('GET /pid/', pid);
ROUTE('GET /dir/', dir);
};
function pid($) {
$.json({ pid: process.pid });
}
function dir($) {
$.json({ dir: PATH.root() });
}require('total5');
Total.run({ cluster: 2, port: 8766, release: true });