Flask Celery update_state from inside another function -


i'd update state of celery task function. here's have now:

the route

@app.route('/my-long-function', methods=['post']) def my_long_function():      param1 = request.form['param1']     param2 = request.form['param2']      task = outside_function.delay(param1, param2)      return task.id 

celery task - starts some_python_script.handle in background

@celery.task(name='outside_function') def outside_function(param1, param2):     app.app_context():         some_python_script.handle(param1, param2) 

some_python_script.handle:

def handle(param1, param2):     param1 + param2     # many, many different things 

ideally, i'd able self.update_state celery task can request status app, so:

some_python_script.handle (ideally):

def handle(param1, param2):     param1 + param2     # many, many different things     self.outside_function.update_state('progress', meta = {'status':'progressing'}) 

check progress (ideally):

@app.route('/status/<task_id>') def taskstatus(task_id):     task = outside_function.asyncresult(task_id)     response = {     'state': task.state,     'id': task.id,     'status' : task.status,     }      return jsonify(response) 

or similar. appreciate help, i'm new celery!

you should declare task id calling. can check update_state.

the below code should work.

# capture id of celery task id = self.request.id  def handle(param1, param2):     param1 + param2     # many, many different things     # update state of celery task direct reference     self.update_state(task_id=id, state='progress', meta = {'status':'progressing'}) 

Comments

Popular posts from this blog

python - How to insert QWidgets in the middle of a Layout? -

python - serve multiple gunicorn django instances under nginx ubuntu -

module - Prestashop displayPaymentReturn hook url -