0
より大きいファイルを非同期でs3にアップロードしようとしています。http://python-rq.org/の文書に従っています。ワーカーは稼働していますが、仕事をしていません。Redis Queueを使ってherokuのdjangoで非同期処理をいくつか試してみました
views.py
def youmaterial(request):
if request.method == 'POST':
newdoc = Youmaterial(docfile = request.FILES['file'],user=request.user)
newdoc.save()
msg='dee'
# Redirect to the document list after POST
return HttpResponse(json.dumps({'message': msg}))
else:
form1 = DocumentForm()
return render(request,'mat_upload.html',{'form':form1})
def create_job():
redis_conn = Redis()
q = Queue(connection=redis_conn) # no args implies the default queue
# Delay execution of count_words_at_url('http://nvie.com')
job = q.enqueue(youmaterial, 'http://heroku.com')
worker.py
import os
import urlparse
from redis import Redis
from rq import Worker, Queue, Connection
listen = ['high', 'default', 'low']
redis_url = os.getenv('REDISTOGO_URL')
if not redis_url:
raise RuntimeError('Set up Redis To Go first.')
urlparse.uses_netloc.append('redis')
url = urlparse.urlparse(redis_url)
conn = Redis(host=url.hostname, port=url.port, db=0, password=url.password)
if __name__ == '__main__':
with Connection(conn):
worker = Worker(map(Queue, listen))
worker.work()
Procfie:
web: gunicorn gettingstarted.wsgi --log-file -
worker: python -u worker.py
Settings.py(これは私にエラーを与えます。)
DJANGO_SETTINGS_MODULE=config.settings rqworker high default low
このことを試してみます。ありがとう –