Django Celeryに対して次のタスクがあります(Amazon SQSを使用)。
@task
def upload_task(request, **kwargs):
file = request.FILES['file']
ContactCSVModel.import_from_file(file)
return True
これは機能しているように見えます。つまり、ファイルはデータベースに正常に追加されていますが、Celeryを使用しているかどうかはわかりません。これが機能したかどうかはどうすればわかりますか。私は何かを見るべきですか?ターミナルで走りました...
manage.pycelery worker --loglevel=info
は、という1つのタスクがあることを示していますがcontacts.tasks.upload_task
、何も起こらないと述べています。
[2013-03-14 20:52:47,947:INFO / MainProcess]コンシューマー:sqs:// AJSUQJZKNSJA81JM @localhost//に接続しました
タスクが実行されて完了したかどうかはわかりません(データベースにあるために完了したことはわかっていますが、Celery経由でしたか?)
これは、タスクが実行される場所です
views.py
@login_required
def upload(request):
# If we had a POST then get the request post values.
if request.method == 'POST':
form = ContactUploadForm(request.POST, request.FILES)
# Check we have valid data
if form.is_valid():
upload_task(request)
#file = request.FILES['file']
#ContactCSVModel.import_from_file(file)
messages.add_message(request, messages.SUCCESS, 'Items have been added')
else:
messages.add_message(request, messages.ERROR, ' Cannot upload CSV file.')
return render_to_response('contacts/home.html', context_instance=RequestContext(request))
else:
form = ContactUploadForm()
# Do this part no matter the outcome above.
context = {'form': form}
return render_to_response('contacts/home.html', context, context_instance=RequestContext(request))
私が言ったように、これはデータベースにロードされたcsvデータで機能しますが、Celeryは何もしていないと思います。
これが私のセロリの設定です。
# Celery
BROKER_TRANSPORT_OPTIONS = {'queue_name_prefix': 'celery-'}
BROKER_TRANSPORT = 'sqs'
BROKER_TRANSPORT_OPTIONS = {
'region': 'eu-west-1',
}
BROKER_USER = 'xyz'
BROKER_PASSWORD = 'xyz'