Skip to content

Commit 8ed19da

Browse files
committed
fix: retry broker and db connections at start
1 parent caa1973 commit 8ed19da

File tree

1 file changed

+23
-15
lines changed

1 file changed

+23
-15
lines changed

.suite-cli/cli/scripts/assets/serverContent.asset.js

+23-15
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,45 @@ const mongoose = require('mongoose');
55
const { config, morgan, logger } = require('${answers.project_base}/config');
66
const { errorHandler } = require('${answers.project_base}/errors');
77
const { validate, APIError } = require('${answers.project_base}/utilities');
8-
const { getUsers } = require('./src/services');
98
const { router } = require('./src/routes');
109
const { subscriber } = require('./src/subscriber');
1110
const ${answers.default_broker} = require('${answers.project_base}/broker/${answers.default_broker}');
12-
// const app = require('./src/app');
1311
14-
const connectWithRetry = () => {
12+
const connectDbWithRetry = () => {
1513
mongoose.connect(config.db)
16-
.then(() => {
14+
.then(() => {
1715
logger.info(\`📀 successfully connected to db: \${config.db}\`);
1816
})
1917
.catch((err) => {
2018
logger.error(\`Failed to connect to db. Exiting... \${err.message}\`);
21-
logger.info('Retrying connection in 5 seconds...');
22-
setTimeout(connectWithRetry, 5000); // Retry after 5 seconds
19+
logger.info('Retrying connection in 2 seconds...');
20+
setTimeout(connectDbWithRetry, 2000); // Retry after 2 seconds
2321
});
2422
};
2523
26-
connectWithRetry();
24+
const connectBrokerWithRetry = async () => {
25+
try {
26+
const channel = await ${answers.default_broker}.workerQueue.amqpInitializeQueue({ config });
27+
await ${answers.default_broker}.workerQueue.consumeFromQueue({
28+
channel,
29+
queue: '${answers.service_name}',
30+
subscriberHandler: subscriber.subscriberHandler,
31+
});
32+
} catch (error) {
33+
logger.error(error);
34+
logger.info('Retrying broker connection in 2 seconds...');
35+
setTimeout(connectBrokerWithRetry, 2000); // Retry after 2 seconds
36+
}
37+
};
38+
39+
connectDbWithRetry();
2740
2841
const app = express();
2942
3043
app.use(express.json());
3144
3245
app.get('/', (req, res) => {
33-
res.json({ message: 'hello from ${answers.project_base}/${answers.service_name}' });
46+
res.json({ message: \`hello from ${answers.project_base}/${answers.service_name}\` });
3447
});
3548
3649
const server = http.createServer(app);
@@ -47,14 +60,9 @@ server.on('error', (err) => {
4760
}
4861
});
4962
50-
server.listen(config.port, async() => {
63+
server.listen(config.port, () => {
5164
logger.info(\`🚀 ${answers.project_base}/${answers.service_name} listening at: http://localhost:\${config.port}\`);
52-
const channel = await ${answers.default_broker}.workerQueue.amqpInitializeQueue({ config });
53-
await ${answers.default_broker}.workerQueue.consumeFromQueue({
54-
channel,
55-
queue: '${answers.service_name}',
56-
subscriberHandler: subscriber.subscriberHandler
57-
});
65+
connectBrokerWithRetry();
5866
});
5967
6068
app.use(morgan.errorHandler);

0 commit comments

Comments
 (0)