fix(mma): Change self.engine to self.engines dict for concurrent track support
- self.engine was a single ConductorEngine reference that got overwritten when multiple tracks ran concurrently, orphaning the first track's engine - Now uses self.engines: Dict[str, ConductorEngine] keyed by track.id - Updated _spawn_worker, kill_worker, pause_mma, resume_mma, approve_ticket, _load_active_tickets, and _update_ticket_depends_on to use engines.get(track_id) Fixes concurrent MMA track execution bug where only one worker ever appeared.
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
with open('src/app_controller.py', 'rb') as f:
|
||||
content = f.read()
|
||||
|
||||
# Fix _update_ticket_depends_on
|
||||
old = b' if self.engine:\r\n from src.dag_engine import TrackDAG, ExecutionEngine\r\n self.engine.dag = TrackDAG(self.active_track.tickets)\r\n self.engine.engine = ExecutionEngine(self.engine.dag, auto_queue=self.engine.engine.auto_queue)'
|
||||
new = b' engine = self.engines.get(self.active_track.id if self.active_track else None)\r\n if engine:\r\n from src.dag_engine import TrackDAG, ExecutionEngine\r\n engine.dag = TrackDAG(self.active_track.tickets)\r\n engine.engine = ExecutionEngine(engine.dag, auto_queue=engine.engine.auto_queue)'
|
||||
content = content.replace(old, new)
|
||||
|
||||
with open('src/app_controller.py', 'wb') as f:
|
||||
f.write(content)
|
||||
|
||||
print("Done")
|
||||
Reference in New Issue
Block a user