Skip to content
This repository was archived by the owner on May 22, 2021. It is now read-only.

Commit 65af8b0

Browse files
committed
added __heartbeat__
1 parent 2691dfc commit 65af8b0

File tree

2 files changed

+31
-8
lines changed

2 files changed

+31
-8
lines changed

server/portal_server.js

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,20 @@ const log = mozlog('portal.server');
1616

1717
const app = express();
1818

19-
app.engine('handlebars', exphbs({
20-
defaultLayout: 'main',
21-
partialsDir: 'views/partials/'
22-
}));
19+
app.engine(
20+
'handlebars',
21+
exphbs({
22+
defaultLayout: 'main',
23+
partialsDir: 'views/partials/'
24+
})
25+
);
2326
app.set('view engine', 'handlebars');
2427

2528
app.use(helmet());
2629
app.use(busboy());
2730
app.use(bodyParser.json());
2831
app.use(express.static(path.join(__dirname, '../public')));
2932

30-
3133
app.get('/', (req, res) => {
3234
res.render('index', {
3335
shouldRenderAnalytics: notLocalHost,
@@ -150,6 +152,10 @@ app.get('/__lbheartbeat__', (req, res) => {
150152
res.sendStatus(200);
151153
});
152154

155+
app.get('/__heartbeat__', (req, res) => {
156+
storage.ping().then(() => res.sendStatus(200), () => res.sendStatus(500));
157+
});
158+
153159
app.listen(conf.listen_port, () => {
154160
log.info('startServer:', `Portal app listening on port ${conf.listen_port}!`);
155161
});

server/storage.js

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ const log = mozlog('portal.storage');
1414

1515
const redis = require('redis');
1616
const redis_client = redis.createClient({
17-
host: conf.redis_host
17+
host: conf.redis_host,
18+
connect_timeout: 10000
1819
});
1920

2021
redis_client.on('error', err => {
@@ -29,7 +30,8 @@ if (notLocalHost) {
2930
get: awsGet,
3031
set: awsSet,
3132
delete: awsDelete,
32-
forceDelete: awsForceDelete
33+
forceDelete: awsForceDelete,
34+
ping: awsPing
3335
};
3436
} else {
3537
module.exports = {
@@ -39,7 +41,8 @@ if (notLocalHost) {
3941
get: localGet,
4042
set: localSet,
4143
delete: localDelete,
42-
forceDelete: localForceDelete
44+
forceDelete: localForceDelete,
45+
ping: localPing
4346
};
4447
}
4548

@@ -120,6 +123,14 @@ function localForceDelete(id) {
120123
});
121124
}
122125

126+
function localPing() {
127+
return new Promise((resolve, reject) => {
128+
redis_client.ping((err, reply) => {
129+
return err ? reject() : resolve();
130+
});
131+
});
132+
}
133+
123134
function awsLength(id) {
124135
const params = {
125136
Bucket: conf.s3_bucket,
@@ -211,3 +222,9 @@ function awsForceDelete(id) {
211222
});
212223
});
213224
}
225+
226+
function awsPing() {
227+
return localPing().then(() =>
228+
s3.headBucket({ Bucket: conf.s3_bucket }).promise()
229+
);
230+
}

0 commit comments

Comments
 (0)