1

私は何週間もこれを理解しようとして立ち往生しています。以前、こちらにある同様の質問をしましたが、返信がありませんでした。どこにも適切なドキュメントが見つかりません。私がする必要があるのは、フォームからアップロードされたときにファイルを flv に変換するためにワーカーを使用することです (どのワーカーに django-celery と rq がインストールされているかは気にしません)。これはローカルで簡単に実行できましたが、1 週間以上経っても、何を試しても機能しませんでした。セロリ用の tasks.py ファイル、または rq 用の worker.py ファイルを追加しようとしましたが、settings.py や Procfile など、他に何をする必要があるかわかりません。私のprocfileは次のようになります:

web: gunicorn lftv.wsgi -b 0.0.0.0:$PORT
celeryd: celery -A tasks worker --loglevel=info
worker: python worker.py

インストールしたものを示すrequirements.txtは次のようになります。

Django==1.4.3
Logbook==0.4.1
amqp==1.0.6
anyjson==0.3.3
billiard==2.7.3.19
boto==2.6.0
celery==3.0.13
celery-with-redis==3.0
distribute==0.6.31
dj-database-url==0.2.1
django-celery==3.0.11
django-s3-folder-storage==0.1
django-storages==1.1.6
gunicorn==0.16.1
kombu==2.5.4
pil==1.1.7
psycopg2==2.4.5
python-dateutil==1.5
pytz==2012j
redis==2.7.2
requests==1.1.0
rq==0.3.2
six==1.2.0
times==0.6

私のsettings.pyに関連する唯一のものは次のとおりです。

BROKER_BACKEND = 'django'
BROKER_URL = #For this I copy/pasted the code from my redistogo add-on from heroku. Not sure if correct
BROKER_TRANSPORT_OPTIONS = {'visibility_timeout': 1800}

スペースを取りすぎないようにすると、tasks.py は次のようになります。

import subprocess

@task
def ffmpeg_conversion(input_file):
    converted_file = subprocess.call(input_file)
    return converted_file

S3 を使用して静的ファイルとメディア ファイルを保存し、アップロードは機能します (アップロードをバケットに追加します) が、何を試しても変換されません。まったくの初心者向けの良いチュートリアルはありますか? 私はheroku redisチュートリアル、セロリのドキュメント、rqのドキュメントなど、私が見つけたものすべてに従い、例を機能させましたが、ワーカーは私のビューからコマンドを実行しません. たとえば、私が試した多くのことの1つ:

...
ffmpeg = "ffmpeg -i %s -acodec mp3 -ar 22050 -f flv -s 320x240 %s" % (sourcefile, targetfile)
ffmpegresult = ffmpeg_conversion.delay(ffmpeg)
...

またはrqを使用

...
q = Queue(connection=conn)
result = q.enqueue(ffmpeg_conversion, ffmpeg)
...

私はそれが単純であるように思えますが、私は完全に独学で、プロジェクトをまったく展開したことがなく、私がやろうとしていることについて利用できる適切なドキュメントやチュートリアルがないようです. 私が完全にオフになっていて、重要な何かを完全に見逃しているか、これを機能させるのに比較的近いかどうかを判断することはできません。どんな意見でも本当に感謝しています。これは私を夢中にさせています。前もって感謝します。

4

1 に答える 1

0

私は似たようなことをしようとしていますが、ワーカーを作成する必要はないと思います。https://github.com/integricho/heroku-buildpack-python-ffmpegなどのカスタムビルドパックを使用してみませんか。ffpmegをOSレベルでインストールしている場合は、別のワーカーを必要とせずに、Python自体からビデオ変換コマンドを発行できます。

それがお役に立てば幸いですか?

于 2013-03-09T23:58:59.947 に答える