mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-04-25 08:26:22 +02:00
merge job workers
This commit is contained in:
parent
cc8e9210d7
commit
7d70ff8fd2
3 changed files with 42 additions and 13 deletions
|
|
@ -1,12 +1,52 @@
|
||||||
import '../lib/loadenv';
|
import '../lib/loadenv';
|
||||||
import { container } from "@/di/container";
|
import { container } from "@/di/container";
|
||||||
import { IJobsWorker } from "@/src/application/workers/jobs.worker";
|
import { IJobsWorker } from "@/src/application/workers/jobs.worker";
|
||||||
|
import { IJobRulesWorker } from "@/src/application/workers/job-rules.worker";
|
||||||
|
|
||||||
|
// this is the old script which just launches job-worker
|
||||||
|
// ------------------------------------------------------------
|
||||||
|
// (async () => {
|
||||||
|
// try {
|
||||||
|
// const jobsWorker = container.resolve<IJobsWorker>('jobsWorker');
|
||||||
|
// await jobsWorker.run();
|
||||||
|
// } catch (error) {
|
||||||
|
// console.error(`Unable to run jobs worker: ${error}`);
|
||||||
|
// }
|
||||||
|
// })();
|
||||||
|
|
||||||
(async () => {
|
(async () => {
|
||||||
try {
|
try {
|
||||||
const jobsWorker = container.resolve<IJobsWorker>('jobsWorker');
|
const jobsWorker = container.resolve<IJobsWorker>('jobsWorker');
|
||||||
|
const rulesWorker = container.resolve<IJobRulesWorker>('jobRulesWorker');
|
||||||
|
|
||||||
|
// Start jobs worker first so subscription is ready before rules publish
|
||||||
await jobsWorker.run();
|
await jobsWorker.run();
|
||||||
|
await rulesWorker.run();
|
||||||
|
|
||||||
|
const shutdown = async (signal: string) => {
|
||||||
|
console.log(`[worker] ${signal} received, shutting down...`);
|
||||||
|
try {
|
||||||
|
await Promise.allSettled([
|
||||||
|
jobsWorker.stop(),
|
||||||
|
rulesWorker.stop(),
|
||||||
|
]);
|
||||||
|
} finally {
|
||||||
|
process.exit(0);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
process.on('SIGINT', () => shutdown('SIGINT'));
|
||||||
|
process.on('SIGTERM', () => shutdown('SIGTERM'));
|
||||||
|
process.on('uncaughtException', (err) => {
|
||||||
|
console.error('[worker] uncaughtException', err);
|
||||||
|
shutdown('uncaughtException');
|
||||||
|
});
|
||||||
|
process.on('unhandledRejection', (reason) => {
|
||||||
|
console.error('[worker] unhandledRejection', reason);
|
||||||
|
shutdown('unhandledRejection');
|
||||||
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(`Unable to run jobs worker: ${error}`);
|
console.error('Unable to start combined worker:', error);
|
||||||
|
process.exit(1);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
|
@ -11,8 +11,7 @@
|
||||||
"setupQdrant": "tsx app/scripts/setup_qdrant.ts",
|
"setupQdrant": "tsx app/scripts/setup_qdrant.ts",
|
||||||
"deleteQdrant": "tsx app/scripts/delete_qdrant.ts",
|
"deleteQdrant": "tsx app/scripts/delete_qdrant.ts",
|
||||||
"rag-worker": "tsx app/scripts/rag-worker.ts",
|
"rag-worker": "tsx app/scripts/rag-worker.ts",
|
||||||
"jobs-worker": "tsx app/scripts/jobs-worker.ts",
|
"jobs-worker": "tsx app/scripts/jobs-worker.ts"
|
||||||
"job-rules-worker": "tsx app/scripts/job-rules.worker.ts"
|
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ai-sdk/openai": "^1.3.21",
|
"@ai-sdk/openai": "^1.3.21",
|
||||||
|
|
|
||||||
|
|
@ -201,16 +201,6 @@ services:
|
||||||
- COMPOSIO_API_KEY=${COMPOSIO_API_KEY}
|
- COMPOSIO_API_KEY=${COMPOSIO_API_KEY}
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
job-rules-worker:
|
|
||||||
build:
|
|
||||||
context: ./apps/rowboat
|
|
||||||
dockerfile: scripts.Dockerfile
|
|
||||||
command: ["npm", "run", "job-rules-worker"]
|
|
||||||
environment:
|
|
||||||
- MONGODB_CONNECTION_STRING=mongodb://mongo:27017/rowboat
|
|
||||||
- REDIS_URL=redis://redis:6379
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
# chat_widget:
|
# chat_widget:
|
||||||
# build:
|
# build:
|
||||||
# context: ./apps/experimental/chat_widget
|
# context: ./apps/experimental/chat_widget
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue