Commit 149d9567 authored by Nane Kratzke's avatar Nane Kratzke
Browse files

parallelized space

parent 7fa78358
......@@ -2,3 +2,4 @@ flask
requests
opentracing
jaeger-client
joblib
\ No newline at end of file
......@@ -6,6 +6,8 @@ import traceback
import os
import json
from joblib import Parallel, delayed
# A very boring and basic space-service to demonstrate
# observability via tracing.
......@@ -24,6 +26,10 @@ tracer = config.initialize_tracer()
def index():
return redirect('/space')
def load_url(url, key, ctx):
with tracer.start_span(operation_name=key, child_of=ctx) as span:
return key, json.loads(requests.get(url).content)
@app.route('/space')
def space():
with tracer.start_span(operation_name="space") as parent_span:
......@@ -40,10 +46,13 @@ def space():
"passtime": f"http://api.open-notify.org/iss-pass.json?lat={ lat }&lon={ lon }"
}
result = {}
for key, url in queries.items():
with tracer.start_span(operation_name=key, child_of=parent_span) as span:
result[key] = json.loads(requests.get(url).content)
#result = {}
results = Parallel(n_jobs=3)(delayed(load_url)(url, key, parent_span) for key, url in queries.items())
result = { key: content for key, content in results }
#for key, url in queries.items():
# with tracer.start_span(operation_name=key, child_of=parent_span) as span:
# result[key] = json.loads(requests.get(url).content)
print(result)
return jsonify(result)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment