Self Modifying Code In Node.js, Would Cluster Work?
I am asking this since I don t have the tool or time to test this right now, but the idea is bothering me. I ll answer this myself when I ll have the time to play with it. In node.
Solution 1:
To answer:
In node.js, how does require() work? Does it keep the required function in memory? or doest it read the file anew?
In node.js when a require is performed it will cache the module being loaded so each further require call will load this from memory, rather than from disk as an optimisation. See: http://nodejs.org/api/modules.html#modules_caching
Solution 2:
As pointed by @Tom Grant, module are cached. So you need to deference your application before starting it anew, like explained here
This work, but require self_modifying.js to export a function start
var cluster = require('cluster');
if (cluster.isMaster) {
cluster.fork();
cluster.on('exit', function () {
delete require.cache[require.resolve('/full/path/to/self_modifying.js')];
cluster.fork();
}
}
if (cluster.isWorker) {
varself = require('self_modifying.js');
self.start()
}
Post a Comment for "Self Modifying Code In Node.js, Would Cluster Work?"