app.js 952 B

12345678910111213141516171819202122232425262728293031
  1. const cluster = require('cluster');
  2. const numCPUs = require('os').cpus().length;
  3. process.env.NODE_HANDLER = 'mysql-raw';
  4. if (process.env.TFB_TEST_NAME === 'nodejs-mongodb') {
  5. process.env.NODE_HANDLER = 'mongoose';
  6. } else if (process.env.TFB_TEST_NAME === 'nodejs-mongodb-raw') {
  7. process.env.NODE_HANDLER = 'mongodb-raw';
  8. } else if (process.env.TFB_TEST_NAME === 'nodejs-mysql') {
  9. process.env.NODE_HANDLER = 'sequelize';
  10. } else if (process.env.TFB_TEST_NAME === 'nodejs-postgres') {
  11. process.env.NODE_HANDLER = 'sequelize-postgres';
  12. }
  13. if (cluster.isMaster) {
  14. // Fork workers.
  15. for (let i = 0; i < numCPUs; i++) {
  16. cluster.fork();
  17. }
  18. cluster.on('exit', (worker, code, signal) => {
  19. console.log([
  20. 'A process exit was triggered, most likely due to a failed database action',
  21. 'NodeJS test server shutting down now'].join('\n'));
  22. process.exit(1);
  23. });
  24. } else {
  25. // Task for forked worker
  26. require('./create-server');
  27. }