質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Redis

Redisは、オープンソースのkey-valueデータストアで、NoSQLに分類されます。すべてのデータをメモリ上に保存するため、処理が極めて高速です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1631閲覧

celeryのチュートリアルでインデント

trafalbad

総合スコア303

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Redis

Redisは、オープンソースのkey-valueデータストアで、NoSQLに分類されます。すべてのデータをメモリ上に保存するため、処理が極めて高速です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/01/07 05:50

編集2019/01/07 08:18

celeryでworkerを作るためceleryのチュートリアルをやったのですが、

python

1celery -A add worker -l info

でceleryを動かすと下記のコードでインデントがおかしいとエラーが出ました。

コード部分のクラス内の関数がおかしいのですが、ちょっと処理がいまいちわからないためご教授お願いします。

python

1 File "/anaconda3/lib/python3.7/importlib/__init__.py", line 127, in import_module 2 return _bootstrap._gcd_import(name[level:], package, level) 3 File "<frozen importlib._bootstrap>", line 1006, in _gcd_import 4 File "<frozen importlib._bootstrap>", line 983, in _find_and_load 5 File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked 6 File "<frozen importlib._bootstrap>", line 677, in _load_unlocked 7 File "<frozen importlib._bootstrap_external>", line 724, in exec_module 8 File "<frozen importlib._bootstrap_external>", line 860, in get_code 9 File "<frozen importlib._bootstrap_external>", line 791, in source_to_code 10 File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed 11 File "/Users/tatsuyahagiwara/Desktop/add.py", line 12 12 return TaskBase.__call__(self, *args, **kwargs) 13 ^ 14IndentationError: expected an indented block

python

1# add.py 2from celery import Celery 3 4def make_celery(app): 5 celery = Celery('tasks', backend=app.config['CELERY_RESULT_BACKEND'], 6 broker=app.config['CELERY_BROKER_URL']) 7 celery.conf.update(app.config) 8 TaskBase = celery.Task 9 class ContextTask(TaskBase): 10 abstract = True 11 def __call__(self, *args, **kwargs): 12 with app.app_context(): 13 return TaskBase.__call__(self, *args, **kwargs) 14 celery.Task = ContextTask 15 return celery 16 17from flask import Flask 18 19flask_app = Flask(__name__) 20flask_app.config.update( 21 CELERY_BROKER_URL='redis://localhost:6379', 22 CELERY_RESULT_BACKEND='redis://localhost:6379') 23celery = make_celery(flask_app) 24 25 26@celery.task() 27def add_together(a, b): 28 return a + b 29

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

python

1from celery import Celery 2from flask import Flask 3 4def make_celery(app): 5 celery = Celery(app.import_name, backend=app.config['CELERY_RESULT_BACKEND'], 6 broker=app.config['CELERY_BROKER_URL']) 7 celery.conf.update(app.config) 8 return celery 9 10 11flask_app = Flask(__name__) 12flask_app.config.update( 13 CELERY_BROKER_URL='redis://127.0.0.1:6379', 14 CELERY_RESULT_BACKEND='redis://127.0.0.1:6379' 15) 16celery = make_celery(flask_app) 17 18 19@celery.task() 20def add_together(a, b): 21 return a + b 22 23 24from add import add_together 25r=add_together.delay(1,3) 26r.result 27>>> 4

投稿2019/01/07 11:35

trafalbad

総合スコア303

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問