LoginSignup
1
1

More than 3 years have passed since last update.

PythonのCelery、RabbitMQ(Docker)を動くところまで

Last updated at Posted at 2020-06-01

メッセージブローカーとしてDockerで起動RabbitMQを使用し、Celeryを使った単純なプログラムが動作するところまでを書く。

内容はほぼ公式ドキュメントの通りだが、DockerのRabbitMQを使うように変えている。

RabbitMQ

# 起動
docker run --rm -d --hostname my-rabbit --name rabbitmq -p 5672:5672 -p 8080:15672 rabbitmq:3-management

# 停止
docker stop rabbitmq

5672が使用するポート。8080(15672)ポートはブラウザから見れる管理画面。(今回はなくてもいい)

ライブラリのインストール

pip install celery

バージョン4.4.2がインストールされた。

プログラムの用意

tasks.py
from celery import Celery

app = Celery('tasks', backend='amqp', broker='amqp://guest:guest@127.0.0.1:5672')


@app.task
def add(x, y):
    return x + y

tasks.pyという名前で作成する。

準備ができたら実行する。

celery -A tasks worker --loglevel=info

メッセージの投入、取得

>>> r = add.delay(4,4)
>>> r
<AsyncResult: 8a80f867-c2f4-47f6-b431-665c624f0ec2>
>>> r.ready()
True
>>> r.get()
8

動いていることが確認できた。

リンク

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1