I have the following code:
class RepeatTimer(Timer):
"""
Extending the threading.Timer class to execute functions at fixed intervals.
"""
def run(self):
while not self.finished.wait(self.interval):
self.function(*self.args, **self.kwargs)
def parallel_process(mp, arguments, cb_fn):
main_process = multiprocessing.Process(target=mp, args=[arguments, cb_fn])
side_process = RepeatTimer(30, generate_info)
final_process = multiprocessing.Process(target=create_final)
main_process.start()
side_process.start()
main_process.join()
side_process.cancel()
final_process.start()
final_process.join()
mp
, generate_info
, and create_final
are my functions being used. I wish to execute mp
and generate_info
concurrently and then execute create_final
after their completion.
mp
and generate_info
run concurrently if I don’t use the create_final
function, but after I use the function, it also starts running while the other two are running. I read about it and got to know join()
method will only block the main process, and not other multiprocessing functions.
What can I do to get my desired output? Even using concurrent.futures
also throws the same error.