def my_callback_fn(extra_callback_context, future: Future): """ Will be invoked on every process completion """ print("[i] Process running ?:", future.running()) print("[i] Process completed ?:", future.done()) print("[+] Result: ", future.result()) # future.result() returns a dictionary print("[+] Context: ", extra_callback_context)
def intercept_result(context, future: Future): """ Will be invoked on every process completion """ data = None if future.done(): fname = context.get("read_result_from", None) with open(fname) as f: data = f.read() # 1. get current result object res = future.result() # this returns a dictionary # 2. update the report variable, # you may update only these: report,error,status res["report"] = data if context.get("force_success", False): res["status"] = "success" # 3. set new result future._result = res
def my_callback_fn(extra_callback_context, future: Future): """ Will be invoked on every process completion """ print("Process completed ?:", future.done()) print("Result: ", future.result())