@@ -5,32 +5,45 @@ const mongoose = require('mongoose');
5
5
const { config, morgan, logger } = require('${ answers . project_base } /config');
6
6
const { errorHandler } = require('${ answers . project_base } /errors');
7
7
const { validate, APIError } = require('${ answers . project_base } /utilities');
8
- const { getUsers } = require('./src/services');
9
8
const { router } = require('./src/routes');
10
9
const { subscriber } = require('./src/subscriber');
11
10
const ${ answers . default_broker } = require('${ answers . project_base } /broker/${ answers . default_broker } ');
12
- // const app = require('./src/app');
13
11
14
- const connectWithRetry = () => {
12
+ const connectDbWithRetry = () => {
15
13
mongoose.connect(config.db)
16
- .then(() => {
14
+ .then(() => {
17
15
logger.info(\`📀 successfully connected to db: \${config.db}\`);
18
16
})
19
17
.catch((err) => {
20
18
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
23
21
});
24
22
};
25
23
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();
27
40
28
41
const app = express();
29
42
30
43
app.use(express.json());
31
44
32
45
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 } \` });
34
47
});
35
48
36
49
const server = http.createServer(app);
@@ -47,14 +60,9 @@ server.on('error', (err) => {
47
60
}
48
61
});
49
62
50
- server.listen(config.port, async () => {
63
+ server.listen(config.port, () => {
51
64
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();
58
66
});
59
67
60
68
app.use(morgan.errorHandler);
0 commit comments