Skip to content

Commit be6e480

Browse files
committed
chore: cleanup
Signed-off-by: Mouad BANI <mouad-mb@outlook.com>
1 parent 3bc4edf commit be6e480

4 files changed

Lines changed: 93 additions & 1 deletion

File tree

services/apps/packages_worker/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"start:packages-worker": "CROWD_TEMPORAL_TASKQUEUE=packages-worker CROWD_TEMPORAL_NAMESPACE=$CROWD_PACKAGES_TEMPORAL_NAMESPACE SERVICE=packages-worker tsx src/bin/packages-worker.ts",
66
"run:pagerank": "tsx src/criticality/run-pagerank.ts",
77
"dev:pagerank": "tsx --expose-gc src/criticality/run-pagerank.ts",
8+
"run:impact": "tsx src/criticality/run-impact.ts",
89
"start:criticality-worker": "CROWD_TEMPORAL_TASKQUEUE=packages-worker CROWD_TEMPORAL_NAMESPACE=$CROWD_PACKAGES_TEMPORAL_NAMESPACE SERVICE=criticality-worker tsx src/bin/criticality-worker.ts",
910
"start:github-repos-enricher": "SERVICE=github-repos-enricher tsx src/bin/github-repos-enricher.ts",
1011
"dev:packages-worker": "CROWD_TEMPORAL_TASKQUEUE=packages-worker CROWD_TEMPORAL_NAMESPACE=$CROWD_PACKAGES_TEMPORAL_NAMESPACE SERVICE=packages-worker LOG_LEVEL=trace nodemon --watch src --watch ../../libs --ext ts --exec tsx --inspect=0.0.0.0:9233 src/bin/packages-worker.ts",
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
1-
export { criticalityComputePageRank } from './criticality/activities'
21
export { sayHiNpm } from './npm/activities'
32
export { osvSyncEcosystem, osvDeriveCriticalFlag } from './osv/activities'
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { getServiceLogger } from '@crowd/logging'
2+
3+
import { getPackagesDb } from '../db'
4+
5+
const log = getServiceLogger()
6+
7+
let shuttingDown = false
8+
9+
process.on('SIGINT', () => { shuttingDown = true })
10+
process.on('SIGTERM', () => { shuttingDown = true })
11+
12+
async function main() {
13+
log.info('criticality-worker starting')
14+
15+
const qx = await getPackagesDb()
16+
await qx.selectOne('SELECT 1')
17+
log.info('Connected to packages-db. Ready — trigger PageRank via run:pagerank or impact score via rank_packages_universe().')
18+
19+
while (!shuttingDown) {
20+
await new Promise(resolve => setTimeout(resolve, 5_000))
21+
}
22+
23+
log.info('criticality-worker stopped')
24+
process.exit(0)
25+
}
26+
27+
main().catch(err => {
28+
log.error({ err }, 'criticality-worker fatal error')
29+
process.exit(1)
30+
})
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#!/usr/bin/env tsx
2+
/**
3+
* Trigger rank_packages_universe() on demand.
4+
*
5+
* Usage (from services/apps/packages_worker):
6+
* pnpm run:impact
7+
* pnpm run:impact --top-n '{"cargo":75000,"maven":150000}'
8+
* pnpm run:impact --w-downloads 0.30 --w-dep-pkgs 0.20 --w-transitive 0.50
9+
*/
10+
11+
import { getPackagesDb } from '../db'
12+
13+
// Env defaults for local dev
14+
process.env.CROWD_PACKAGES_DB_WRITE_HOST ??= 'localhost'
15+
process.env.CROWD_PACKAGES_DB_PORT ??= '5434'
16+
process.env.CROWD_PACKAGES_DB_DATABASE ??= 'packages-db'
17+
process.env.CROWD_PACKAGES_DB_USERNAME ??= 'postgres'
18+
process.env.CROWD_PACKAGES_DB_PASSWORD ??= 'example'
19+
20+
function parseArg(flag: string, fallback: number): number {
21+
const idx = process.argv.indexOf(flag)
22+
return idx !== -1 ? Number(process.argv[idx + 1]) || fallback : fallback
23+
}
24+
25+
function parseJsonArg(flag: string, fallback: string): string {
26+
const idx = process.argv.indexOf(flag)
27+
return idx !== -1 ? process.argv[idx + 1] : fallback
28+
}
29+
30+
const wDownloads = parseArg('--w-downloads', 0.25)
31+
const wDepPkgs = parseArg('--w-dep-pkgs', 0.25)
32+
const wTransitive = parseArg('--w-transitive', 0.50)
33+
const topN = parseJsonArg('--top-n', '{"cargo":75000,"maven":150000}')
34+
35+
async function main() {
36+
if (Math.abs(wDownloads + wDepPkgs + wTransitive - 1.0) > 0.001) {
37+
console.error(`Weights must sum to 1.0, got ${(wDownloads + wDepPkgs + wTransitive).toFixed(3)}`)
38+
process.exit(1)
39+
}
40+
41+
console.log(`Running rank_packages_universe()`)
42+
console.log(` weights: downloads=${wDownloads} dep_pkgs=${wDepPkgs} transitive=${wTransitive}`)
43+
console.log(` top-n : ${topN}\n`)
44+
45+
const qx = await getPackagesDb()
46+
const t = Date.now()
47+
48+
const [result] = await qx.select(
49+
`SELECT * FROM rank_packages_universe($/wDownloads/, $/wDepPkgs/, $/wTransitive/, $/topN/::jsonb)`,
50+
{ wDownloads, wDepPkgs, wTransitive, topN },
51+
)
52+
53+
const elapsed = ((Date.now() - t) / 1000).toFixed(1)
54+
console.log(`Done in ${elapsed}s`)
55+
console.log(` scored_rows : ${result.scored_rows?.toLocaleString()}`)
56+
console.log(` ranked_rows : ${result.ranked_rows?.toLocaleString()}`)
57+
console.log(` propagated_rows: ${result.propagated_rows?.toLocaleString()}`)
58+
59+
process.exit(0)
60+
}
61+
62+
main().catch(err => { console.error(err); process.exit(1) })

0 commit comments

Comments
 (0)