0

VPS でプロジェクトをデーモン化しようとしています。コマンドラインからセロリを実行している場合

celery -A taxomat_api worker -B -l INFO

or 

 /var/www/html/taxomat/taxomat_api/venv/bin/celery --workdir=/var/www/html/taxomat/taxomat_api -A taxomat_api worker -B -l INFO

or 

cd /var/www/html/taxomat/taxomat_api
root@taxomat:/var/www/html/taxomat/taxomat_api# venv/bin/celery -A taxomat_api worker -B -l INFO

すべてが正常に機能しますが、スーパーバイザーでセロリタスクをデーモンとして実行しようとすると、エラーが発生します

Traceback(most recent call last):
File "/var/www/html/taxomat/taxomat_api/venv/bin/celery", line 5, in <module>
from celery.__main__ import main
File "/var/www/html/taxomat/taxomat_api/celery.py", line4, in <module>
ModuleNotFoundError: No module named 'celery.schedules'; 'celery' is not a package

ここに私のconfファイルがあります /path /etc/supervisor/conf.d/celery.conf/

 [program:deeptechx-celery]

environment=PYTHONPATH="/var/www/html/taxomat/taxomat_api:$PYTHONPATH",DJANGO_SETTINGS_MODULE="taxomat_api.settings"
command=/var/www/html/taxomat/taxomat_api/venv/bin/celery --workdir=/var/www/html/taxomat/taxomat_api -A taxomat_api worker -B -l INFO

directory=/var/www/html/taxomat/taxomat_api

user=root

numprocs=1

stdout_logfile=/var/log/celery/worker.log


stderr_logfile=/var/log/celery/worker.log

autostart=true

autorestart=true


startsecs=10


stopwaitsecs = 600

killasgroup=true    

priority=1

私のプロジェクトツリーは

taxomat
   taxomat_api
      venv
         bin
           celery
         lib
           python3.8
      taxomat_api
           settings.py
           celery.py
      workers
           tasks.py

私の celery.py ファイル

from __future__ import absolute_import, unicode_literals

import os
from celery.schedules import crontab
from celery import Celery
import django

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'taxomat_api.settings')
django.setup()

app = Celery('taxomat_api')

app.config_from_object('django.conf:settings', namespace='CELERY')

app.autodiscover_tasks()

私のローカルマシンでもデーモンが動作します。誰でも私を助けることができますか?ドキュメントを読み、多くの方法を試しましたが、エラーは同じです。

4

0 に答える 0