Skip to content

Commit 3d266dc

Browse files
committed
feat: add packages-worker parent entry point scaffold
Signed-off-by: Mouad BANI <mouad-mb@outlook.com>
1 parent 2f393b2 commit 3d266dc

1 file changed

Lines changed: 53 additions & 0 deletions

File tree

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import fs from 'fs'
2+
import path from 'path'
3+
4+
import { getServiceLogger } from '@crowd/logging'
5+
6+
import { getPackagesDb } from '../db'
7+
8+
const log = getServiceLogger()
9+
10+
const liveFilePath = path.join(__dirname, '../tmp/packages-worker-live.tmp')
11+
const readyFilePath = path.join(__dirname, '../tmp/packages-worker-ready.tmp')
12+
13+
let shuttingDown = false
14+
15+
const shutdown = async () => {
16+
if (shuttingDown) return
17+
shuttingDown = true
18+
log.info('Shutting down packages-worker...')
19+
process.exit(0)
20+
}
21+
22+
process.on('SIGINT', shutdown)
23+
process.on('SIGTERM', shutdown)
24+
25+
const main = async () => {
26+
log.info('packages-worker starting...')
27+
28+
const qx = await getPackagesDb()
29+
await qx.selectOne('SELECT 1')
30+
log.info('Connected to packages-db.')
31+
32+
// Create tmp directory for health probe files
33+
fs.mkdirSync(path.dirname(liveFilePath), { recursive: true })
34+
35+
setInterval(async () => {
36+
if (shuttingDown) return
37+
try {
38+
await Promise.all([
39+
fs.promises.open(liveFilePath, 'a').then((f) => f.close()),
40+
fs.promises.open(readyFilePath, 'a').then((f) => f.close()),
41+
])
42+
} catch (err) {
43+
log.warn({ err }, 'Failed to write health probe files')
44+
}
45+
}, 5000)
46+
47+
log.info('packages-worker started, idle.')
48+
}
49+
50+
main().catch((err) => {
51+
log.error({ err }, 'packages-worker fatal error')
52+
process.exit(1)
53+
})

0 commit comments

Comments
 (0)