Latihan 1 dari materi Clustering & Scaling di Node.js — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Simulasikan cluster: satu primary mem-fork 3 worker, lalu 6 request dibagi bergiliran (round-robin).
Kode awal sudah punya object cluster tiruan: isPrimary: true, array workers, nextPid: 101, dan fork() yang membuat worker { pid, handled: 0 }, memasukkannya ke workers, dan mencetak Forked worker pid=.... Biarkan semuanya. Tulis kodemu di bawahnya:
- Buat
if (cluster.isPrimary) { ... }. Di dalamnya, cetak Primary 1 forking 3 workers.
- Fork 3 worker dengan loop
for yang memanggil cluster.fork(), bukan tiga baris yang ditulis satu-satu.
- Bagikan 6 request dengan loop
for (let i = 0; i < 6; i++). Pilih worker-nya dengan cluster.workers[i % cluster.workers.length], tambah handled-nya 1, lalu cetak "Request " + (i + 1) + " handled by worker " + worker.pid.
Output yang diharapkan:
Primary 1 forking 3 workers
Forked worker pid=101
Forked worker pid=102
Forked worker pid=103
Request 1 handled by worker 101
Request 2 handled by worker 102
Request 3 handled by worker 103
Request 4 handled by worker 101
Request 5 handled by worker 102
Request 6 handled by worker 103
Yang dinilai: kesepuluh baris output persis seperti di atas, berurutan; kodenya memakai loop (for, while, Array.from, atau .map), memakai %, memilih worker dengan indeks di dalam kurung siku yang berisi % (misalnya [i % cluster.workers.length]), dan baris Request menyambung pid worker-nya dengan + atau ${}, bukan angka yang diketik.