Skip to content

Commit 34138fc

Browse files
author
Michael Hammann
committed
fix: depends_on was only working for first program within a group- now it can be used with all
1 parent 487897d commit 34138fc

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

supervisor/supervisord.py

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -89,20 +89,22 @@ def run(self):
8989
g = Graph(len(self.options.process_group_configs))
9090
# replace depends_on string with actual process object
9191
for config in (self.options.process_group_configs):
92-
if config.process_configs[0].depends_on is not None:
93-
processes=[]
94-
# split to get all processes in case there are multiple dependencies
95-
dependent_processes = (config.process_configs[0].depends_on).split()
96-
for process in dependent_processes:
97-
# this can be of form group:process or simply process
98-
try:
99-
dependent_group, dependent_process=process.split(":")
100-
except:
101-
dependent_group=dependent_process=process
102-
g.addEdge(config.process_configs[0].name, dependent_process)
103-
print(f'adding edge {config.process_configs[0].name, dependent_process}')
104-
processes.append(self.process_groups[dependent_group].processes[dependent_process])
105-
config.process_configs[0].depends_on = processes
92+
# check dependencies for all programs in group:
93+
for conf in enumerate(config.process_configs):
94+
if config.process_configs[conf[0]].depends_on is not None:
95+
processes=[]
96+
# split to get all processes in case there are multiple dependencies
97+
dependent_processes = (config.process_configs[conf[0]].depends_on).split()
98+
for process in dependent_processes:
99+
# this can be of form group:process or simply process
100+
try:
101+
dependent_group, dependent_process=process.split(":")
102+
except:
103+
dependent_group=dependent_process=process
104+
g.addEdge(config.process_configs[conf[0]].name, dependent_process)
105+
print(f'adding edge {config.process_configs[conf[0]].name, dependent_process}')
106+
processes.append(self.process_groups[dependent_group].processes[dependent_process])
107+
config.process_configs[conf[0]].depends_on = processes
106108
# check for cyclical process dependencies
107109
if g.cyclic() == 1:
108110
raise AttributeError('Process config contains dependeny cycle(s)! Check config files again!')

0 commit comments

Comments
 (0)