app.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. const cluster = require('node:cluster');
  2. const { availableParallelism } = require('node:os');
  3. const numCPUs = availableParallelism();
  4. process.env.NODE_HANDLER = 'postgres';
  5. if (process.env.TFB_TEST_NAME === 'nodejs-mongodb') {
  6. process.env.NODE_HANDLER = 'mongoose';
  7. } else if (process.env.TFB_TEST_NAME === 'nodejs-mongodb-raw') {
  8. process.env.NODE_HANDLER = 'mongodb-raw';
  9. } else if (process.env.TFB_TEST_NAME === 'nodejs-mysql') {
  10. process.env.NODE_HANDLER = 'sequelize';
  11. } else if (process.env.TFB_TEST_NAME === 'nodejs-mysql-raw') {
  12. process.env.NODE_HANDLER = 'mysql-raw';
  13. } else if (process.env.TFB_TEST_NAME === 'nodejs-postgres') {
  14. process.env.NODE_HANDLER = 'sequelize-postgres';
  15. } else if (process.env.TFB_TEST_NAME === 'nodejs-postgresjs-raw') {
  16. process.env.NODE_HANDLER = 'postgres';
  17. }
  18. if (numCPUs > 1 && cluster.isPrimary) {
  19. console.log(`Primary ${process.pid} is running`);
  20. // Fork workers.
  21. for (let i = 0; i < numCPUs; i++) {
  22. cluster.fork();
  23. }
  24. cluster.on('exit', (worker, code, signal) => {
  25. console.log(`worker ${worker.process.pid} died`);
  26. process.exit(1);
  27. });
  28. } else {
  29. // Task for forked worker
  30. require('./create-server');
  31. }