53 lines
		
	
	
		
			785 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			785 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| var cluster = require('cluster');
 | |
| var crpc;
 | |
| var db = {
 | |
|   get: function (key, cb) {
 | |
|     cb(null, db[key]);
 | |
|   }
 | |
| , put: function (key, val, cb) {
 | |
|     db[key] = val;
 | |
|     cb(null);
 | |
|   }
 | |
| };
 | |
| 
 | |
| 
 | |
| if (cluster.isMaster) {
 | |
| 
 | |
| 
 | |
|   crpc = require('./master').create({
 | |
|     instance: db
 | |
|   , methods: [ 'get', 'put' ]
 | |
|   , name: 'foo-level'
 | |
|   });
 | |
|   crpc.then(function () {
 | |
|     db.put('foo', 'bar');
 | |
|   });
 | |
|   cluster.fork();
 | |
| 
 | |
| 
 | |
| }
 | |
| else {
 | |
| 
 | |
| 
 | |
|   crpc = require('./worker').create({
 | |
|     name: 'foo-level'
 | |
|   });
 | |
| 
 | |
| 
 | |
| }
 | |
| 
 | |
| 
 | |
| crpc.then(function (db) {
 | |
|   setTimeout(function () {
 | |
|     db.get('foo', function (err, result) {
 | |
|       console.log(cluster.isMaster && '0' || cluster.worker.id.toString(), "db.get('foo')", result);
 | |
| 
 | |
|       if (!cluster.isMaster) {
 | |
|         process.exit(0);
 | |
|       }
 | |
|     });
 | |
|   }, 250);
 | |
| });
 |