$ docker-compose up -d
$ cd backend
$ pip install pipenv
$ pipenv shell
# Pipfileを元にインストールするため、特にモジュール名の指定は不要
$ pipenv install
$ pipenv shell
$ python manage.py migrate
$ python manage.py createsuperuser --username admin --email admin@foobar.com --skip-checks
# [!] 以下のメッセージが表示されるため好きなパスワードを指定
# >Password: admin
# >Password (again):admin
# [!] パスワードの注意メッセージが表示されるが、yを指定すれば問題なし
# このパスワードは ユーザー名 と似すぎています。
# このパスワードは短すぎます。最低 8 文字以上必要です。
# このパスワードは一般的すぎます。
# Bypass password validation and create user anyway? [y/N]:
$ python manage.py loaddata xxx_api/fixtures/xxx_api.json
$ python manage.py runserver
# 別シェルで起動する
$ cd backend
$ pipenv shell
$ celery -A xxx_api worker -l info --pool=solo
これでCeleryプロセスの実行準備が完了しました。
# 別シェルで起動する
$ cd backend
$ pipenv shell
$ celery flower -A xxx_api --address=127.0.0.1 --port=5555
$ cd frontend/poc-frontend
$ npm install
$ ng serve
[2021-03-22 00:17:12,563: WARNING/MainProcess] current_task_idです:3839db79-0d03-4096-9d88-7b30411ea681
[2021-03-22 00:17:13,953: INFO/MainProcess] Task xxx_api.tasks.do_parse_resource[3839db79-0d03-4096-9d88-7b30411ea681] succeeded in 1.3910000000
032596s: 'program_language.xlsxをParseResultに格納しました'
backend/xxx_api/tasks.py:do_something関数
を実行// POSTパラメータ
{"resource_id": "cc42c989-6813-456f-87ab-16858ef38fd9"}
xxx_api_parseresult
を参照し、データが格納されていることを確認イメージ | ホスト名 | ポート番号(ホスト) | ポート番号(コンテナ) |
---|---|---|---|
redis:6.2.1 | mq | 6379 | 6379 |
イメージ | ホスト名 | DB名 | ユーザ名 | パスワード | ポート番号(ホスト) | ポート番号(コンテナ) |
---|---|---|---|---|---|---|
postgres:13 | db | poc | admin | admin | 5432 | 5432 |
イメージ | ホスト名 | ポート番号(ホスト) | ポート番号(コンテナ) |
---|---|---|---|
adminer:latest | adminer | 8080 | 8080 |
Celery4.x以降はWindowsではサポートされないため、通常のコマンドcelery -A xxx_api worker -l info
では動かない。
pipでeventletかgeventをインストールして以下のように実行する必要あり
$ celery -A xxx_api worker -l info --pool=solo
[参考資料]
import io
import pandas as pd
record = HogeModel.objects.get(pk="hoge")
df = pd.read_excel(io.BytesIO(record.blob_data))
$ pip install django
$ pip install djangorestframework
$ pip install celery
$ pip install django-celery-results
$ pip install psycopg2
$ pip install redis
$ pip install eventlet
$ pip install black
$ pip install flake8
$ pip install openpyxl
$ pip install xlrd
$ pip install flower