mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-11-04 22:51:38 -05:00
feat(server): nest Auto Nest jobs on the server's worker
Large nests tie up the workstation that runs them. In Database mode, Auto Nest can now queue the job on the nest server, where a worker container solves one job at a time under its own CPU and memory limits. The job has no time limit, so a throttled worker finds the same nest a fast one does, only later. - Server: /api/nest-jobs queue (schema v15). The worker holds a job on a heartbeat lease. When the lease lapses, the job goes back to the queue, or fails after three attempts. Only one job runs at a time. Packages and results are opaque to the HTTP server, which stays off Engine and IO. - Worker: OpenNest.Server.Worker in the same image (OPENNEST_ROLE=worker), reaching the server over HTTP only. It records each engine answer with RecordingNestingEngine and gives its job back on shutdown. - Desktop: "Nest on the server" in the Auto Nest dialog, for built-in engines only. The client replays the recorded answers with RemoteNestSubmission, so validation, the review and Keep run locally against the client's own drawings, exactly as after a local run. A drawing edited after sending refuses the result. If the server cannot take the job, the user may nest locally instead. - compose.server.yaml adds the throttled worker service. The Dockerfile, .dockerignore, CI paths and the deploy script now include the worker's projects. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d29f919aa2
commit
54ad7ee84d
53 files changed
+2772
-22
No files matched your search
@@ -6,6 +6,10 @@ on:
|
||||
- 'OpenNest.Server/**'
|
||||
- 'OpenNest.Data/**'
|
||||
- 'OpenNest.Core/**'
|
||||
- 'OpenNest.Server.Worker/**'
|
||||
- 'OpenNest.Api/**'
|
||||
- 'OpenNest.Engine/**'
|
||||
- 'OpenNest.IO/**'
|
||||
- 'OpenNest.Server.Tests/**'
|
||||
- 'scripts/Server.Tests/**'
|
||||
- 'scripts/Test-ServerContainer.sh'
|
||||
@@ -21,6 +25,10 @@ on:
|
||||
- 'OpenNest.Server/**'
|
||||
- 'OpenNest.Data/**'
|
||||
- 'OpenNest.Core/**'
|
||||
- 'OpenNest.Server.Worker/**'
|
||||
- 'OpenNest.Api/**'
|
||||
- 'OpenNest.Engine/**'
|
||||
- 'OpenNest.IO/**'
|
||||
- 'OpenNest.Server.Tests/**'
|
||||
- 'scripts/Server.Tests/**'
|
||||
- 'scripts/Test-ServerContainer.sh'
|
||||
|
||||
Reference in new issue
Block a user