Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
V
vidai
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
SexHackMe
vidai
Commits
577ab4ce
Commit
577ab4ce
authored
Oct 09, 2025
by
Stefy Lanza (nextime / spora )
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix job assignment timing issue by queuing jobs in backend when worker not registered
parent
c0d4ffe7
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
2 deletions
+24
-2
backend.py
vidai/backend.py
+24
-2
No files found.
vidai/backend.py
View file @
577ab4ce
...
@@ -27,6 +27,7 @@ from .queue import queue_manager
...
@@ -27,6 +27,7 @@ from .queue import queue_manager
worker_sockets
=
{}
# type: dict
worker_sockets
=
{}
# type: dict
pending_jobs
=
{}
# worker_key -> list of messages
pending_results
=
{}
# msg_id -> result message
pending_results
=
{}
# msg_id -> result message
job_progress
=
{}
# job_id -> progress data
job_progress
=
{}
# job_id -> progress data
job_progress_times
=
{}
# job_id -> last_progress_timestamp
job_progress_times
=
{}
# job_id -> last_progress_timestamp
...
@@ -75,8 +76,11 @@ def handle_web_message(message: Message, client_sock=None) -> Message:
...
@@ -75,8 +76,11 @@ def handle_web_message(message: Message, client_sock=None) -> Message:
print
(
f
"Backend sent to worker {worker_key}"
)
print
(
f
"Backend sent to worker {worker_key}"
)
return
Message
(
'success'
,
message
.
msg_id
,
{
'status'
:
'forwarded'
})
return
Message
(
'success'
,
message
.
msg_id
,
{
'status'
:
'forwarded'
})
else
:
else
:
print
(
f
"Backend: Worker {worker_key} not found in worker_sockets"
)
print
(
f
"Backend: Worker {worker_key} not found in worker_sockets, queuing job"
)
return
Message
(
'error'
,
message
.
msg_id
,
{
'error'
:
f
'Worker {worker_key} not available'
})
if
worker_key
not
in
pending_jobs
:
pending_jobs
[
worker_key
]
=
[]
pending_jobs
[
worker_key
]
.
append
(
message
)
return
Message
(
'success'
,
message
.
msg_id
,
{
'status'
:
'queued'
})
elif
message
.
msg_type
==
'train_request'
:
elif
message
.
msg_type
==
'train_request'
:
backend
=
get_training_backend
()
backend
=
get_training_backend
()
worker_key
=
f
'training_{backend}'
worker_key
=
f
'training_{backend}'
...
@@ -143,6 +147,24 @@ def handle_worker_message(message: Message, client_sock) -> None:
...
@@ -143,6 +147,24 @@ def handle_worker_message(message: Message, client_sock) -> None:
print
(
f
"Worker {worker_type} registered"
)
print
(
f
"Worker {worker_type} registered"
)
print
(
f
"DEBUG: worker_sockets keys after register: {list(worker_sockets.keys())}"
)
print
(
f
"DEBUG: worker_sockets keys after register: {list(worker_sockets.keys())}"
)
# Send any pending jobs for this worker
if
worker_type
in
pending_jobs
:
import
json
for
pending_msg
in
pending_jobs
[
worker_type
]:
msg_dict
=
{
'msg_type'
:
pending_msg
.
msg_type
,
'msg_id'
:
pending_msg
.
msg_id
,
'data'
:
pending_msg
.
data
}
msg_json
=
json
.
dumps
(
msg_dict
)
+
'
\n
'
print
(
f
"Backend sending pending job to worker {worker_type}: {msg_json.strip()}"
)
try
:
worker_sockets
[
worker_type
]
.
sendall
(
msg_json
.
encode
(
'utf-8'
))
print
(
f
"Backend sent pending job to worker {worker_type}"
)
except
Exception
as
e
:
print
(
f
"Failed to send pending job to worker {worker_type}: {e}"
)
del
pending_jobs
[
worker_type
]
# Notify cluster master that a worker has registered
# Notify cluster master that a worker has registered
try
:
try
:
import
socket
import
socket
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment