2017-05-05 12 views
0

、私は次のログを使用しています:Celery:Webサーバー上のタスクからのログメッセージを表示しますか?私のセロリのタスクで

logger = logging.getLogger(__name__) 

@celery.task(bind=True) 
def deploy_heroku_app(self, cloaker_id): 
    logger.debug('Hello') 

今私はセロリワーカーを実行しているウィンドウに出力されるログを見ることができます。

ウェブサーバーのページにこれらのログを表示して、ユーザーが自分の仕事の進行状況を確認できるようにしたいと思います。

これは可能ですか?

+0

可能?確かに。あなたがそれをすることができるいくつかの異なる方法。 WebサーバWebディレクトリにあるファイルに出力する方法や、Webアプリケーションで読み込み、解析、ログを表示する方法があります。 – sytech

+0

@sytechセロリと私のウェブサーバーが**別個の**プロセスであることに気がつきました。だから、私はかなりロガーに頼ることができないのですか? – Sparrowcide

+0

あなたはどのようにそれを理解しますか?彼らは同じホストにいますか?あなたのロガーが '/ var/logs/celery/foo_app.log'ファイルに出力すると仮定しましょう - あなたのウェブサーバがそのファイルを読むことができる限り、別個のプロセスであっても可能でなければなりません。 – sytech

答えて

0

Celeryバックエンドを使用してタスクのステータスを取得できます。したがって、新しい非同期タスクを開始すると、タスクIDが取得されます。これを使用して、バックエンドのテーブルをクエリして、タスクに関するステータスやその他の情報を取得することができます。 http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html#keeping-results

また、あなたはセロリのための別のバックエンドを使用することができます。mysql、postgresのなど

関連する問題