Hen rik
11/09/2023, 9:48 PM22:47:32.802 | ERROR | Task run 'task2-0' - Crash detected! Execution was cancelled by the runtime environment.
22:47:32.839 | ERROR | Flow run 'garnet-bullfrog' - Crash detected! Execution was cancelled by the runtime environment
Here is a exmaple of how our flow and tasks are written.
from flask import Flask, request
from prefect import flow, get_run_logger, task
import time
app = Flask(__name__)
@task
def task1(payload):
print(payload)
time.sleep(5)
@task
def task2():
time.sleep(5)
@flow(name="valentin_flask")
def process_request(payload):
logger = get_run_logger()
logger.info("Hello from Flask")
print(payload)
time.sleep(5)
task1(payload)
task2()
return {"ok": True}
@app.route("/getConfiguration", methods=["POST"])
def push_event():
payload = request.json
return_msg = process_request(payload)
return return_msg
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True, port=8080)
I'm a bit stuck. Any help would be great.
ThanksIvan
11/10/2023, 8:39 AMRomain Vincent
11/10/2023, 10:07 AMIvan
11/10/2023, 10:09 AMHen rik
11/10/2023, 10:10 AMfrom threading import Thread
import bson
from flask import request, Flask, json
from prefect.deployments import deployments
app = Flask(__name__)
class Compute(Thread):
def __init__(self, intput):
Thread.__init__(self)
self.request = intput
def run(self):
result = deployments.run_deployment(name="test/test", parameters=self.request,
flow_run_name="test123")
print(result.id)
@app.route('/getTaskflow', methods=["POST"])
def myfunc():
payload = request.json
server_name = payload
id = str(bson.ObjectId())
body = {
"id": id,
"hostname": server_name,
"payload": payload
}
thread = Compute(body)
thread.start()
response = app.response_class(
response=json.dumps(body),
status=200,
mimetype='application/json'
)
return response
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True, port=8000)
I did not manage to fetch the result directly. If you manage to do so please let me know.Romain Vincent
11/10/2023, 10:17 AMdef run_and_wait_for_result(name):
run_id = run_deployment(name=name)
while True:
status = check_run_status(run_id)
if status == 'DONE':
return get_result_from_storage(run_id)
Romain Vincent
11/10/2023, 10:18 AMHen rik
11/10/2023, 10:20 AMRomain Vincent
11/10/2023, 10:23 AMRomain Vincent
11/10/2023, 10:24 AMJeff Hale
11/10/2023, 12:30 PM