課題
CeleryのBrokerにAmazonSQSを選択したのですが、起動しても即終了してしまいます。
ログレベルをDEBUGにしても何も出ません。AmazonSQSの権限周りも特に問題ありません。辛い。
redisを使えば動くんですが、自分で管理したくないので絶対AmazonSQSを使いたいのです。
解決策
https://github.com/celery/celery
レポジトリを見るとrequirements以下にいろいろあるではないですか。
brokerによって追加で必要なライブラリがあるのでインストールしましょう。
AmazonSQSの場合、 celery/requirements/extras/sqs.txt
に書いてますね。
boto3とpycurlが必要っぽいですね。
pycurlを入れてなかったのでインストールしたら動きました!!
pycurlのインストールはちょっと面倒なのでこちらの記事を
https://qiita.com/kirishimaru/items/722776766da890fd853f
あとから見つけたんですがissueにあがってましたね
https://github.com/celery/celery/issues/3630
pycurlの依存関係外してくれ〜っていうissueが立ってますw
どうやって調べたか
celery.worker.consumer.tasksの49行目付近でCanceling task consumer
というログを出力してるところに移動してエラーっぽいメッセージを探しました。task_consumerのオブジェクト内にはちゃんとエラーメッセージが残ってるっぽいです。できればコンソールにもエラーメッセージを流してほしいですね!
OSS活動は時間がないのでやめておきます←