@@ -3,24 +3,33 @@ import { Worker } from "bullmq"
33import { redis } from "./redis"
44import { processJob } from "./job"
55
6- /**
7- * docker compose build worker
8- * docker run \
9- * --name roomote-worker \
10- * --rm \
11- * --network roomote_default \
12- * -e HOST_EXECUTION_METHOD=docker \
13- * -v /var/run/docker.sock:/var/run/docker.sock \
14- * -v /tmp/roomote:/var/log/roomote roomote-worker \
15- * sh -c "pnpm worker"
16- */
6+ // docker compose build worker
7+ // docker run \
8+ // --name roomote-worker \
9+ // --rm \
10+ // --interactive \
11+ // --tty \
12+ // --network roomote_default \
13+ // -e HOST_EXECUTION_METHOD=docker \
14+ // -e GH_TOKEN=$GH_TOKEN \
15+ // -e DATABASE_URL=postgresql://postgres:password@db:5432/cloud_agents \
16+ // -e REDIS_URL=redis://redis:6379 \
17+ // -e NODE_ENV=production \
18+ // -v /var/run/docker.sock:/var/run/docker.sock \
19+ // -v /tmp/roomote:/var/log/roomote \
20+ // roomote-worker sh -c "bash"
1721
1822async function processSingleJob ( ) {
19- const worker = new Worker ( "roomote" , undefined , { autorun : false , connection : redis } )
23+ const worker = new Worker ( "roomote" , undefined , {
24+ autorun : false ,
25+ connection : redis ,
26+ lockDuration : 30 * 60 * 1_000 , // 30 minutes
27+ } )
28+
29+ const token = crypto . randomUUID ( )
2030
2131 try {
22- console . log ( "Looking for a job to process..." )
23- const job = await worker . getNextJob ( "worker-token" )
32+ const job = await worker . getNextJob ( token )
2433
2534 if ( ! job ) {
2635 console . log ( "No jobs available, exiting..." )
@@ -32,10 +41,10 @@ async function processSingleJob() {
3241
3342 try {
3443 await processJob ( job )
35- await job . moveToCompleted ( undefined , "worker- token" )
44+ await job . moveToCompleted ( undefined , token , false )
3645 console . log ( `Job ${ job . id } completed successfully` )
3746 } catch ( error ) {
38- await job . moveToFailed ( error as Error , "worker- token" )
47+ await job . moveToFailed ( error as Error , token , false )
3948 console . error ( `Job ${ job . id } failed:` , error )
4049 }
4150 } catch ( error ) {
@@ -56,5 +65,8 @@ process.on("SIGINT", async () => {
5665 process . exit ( 0 )
5766} )
5867
59- console . log ( "Single job worker started" )
68+ if ( ! process . env . GH_TOKEN ) {
69+ throw new Error ( "GH_TOKEN is not set" )
70+ }
71+
6072processSingleJob ( )
0 commit comments