flask + состояние обновления сельдерея - PullRequest
0 голосов
/ 05 марта 2020

У меня небольшое приложение flask + clelery, и я использую цветок для мониторинга задач, мне нужно изменить состояние задачи после завершения на основе результатов, но я не могу этого сделать, Код это:

import requests
from flask import Flask, escape, request, jsonify
from flask.logging import default_handler
import logging
import os
from dotenv import load_dotenv
load_dotenv()
from pathlib import Path  # python3 only
from logging.config import dictConfig
from celery import Celery, current_task
from tasks import make_celery

env_path = Path('.') / '.env'
load_dotenv(dotenv_path=env_path)

logging.basicConfig(filename='app.log', filemode='a', datefmt='%d-%b-%y %H:%M:%S' , format='%(asctime)s %(name)s - %(levelname)s - %(message)s', level=logging.INFO)


# Flask code

flask_app = Flask(__name__)
flask_app.debug = True

flask_app.config.update(
    CELERY_BROKER_URL='pyamqp://amr:admin@rabbitmq-celery:5672/celery',
    CELERY_RESULT_BACKEND='redis://redis-celery/0'
)
celery = make_celery(flask_app)

@celery.task(bind=True)
def name(self,me):
    if me == "amr6":
        self.update_state(state='FFAAII')
        msg = f'Helloo {me}'
    else:
        msg = "OK"
    return msg
@flask_app.route('/api/<n>', methods=['POST'])
def hello(n):
    result = name.delay(n)
    return result.wait()

Это всего лишь часть кода

Sample of the task as seen in flower

...