Я пытаюсь настроить рабочую среду для выполнения фоновой задачи. У меня такая же версия приложения, работающая в двух средах, одна из которых - веб-сервер, а другая - рабочий.Django POST прослушиватель в эластичном Beanstalk для получения запросов рабочего уровня AWS
Мне нужно удалить файлы периодически в соответствии с датой окончания срока действия. Я сопоставил представление как URL-адрес на локальном хосте, где сообщения будут перенаправляться как HTTP-запросы POST. Задание запланировано и похоже, что SQS работает, но все сообщения находятся на рабочем столе WorkerDeadLetterQueue.
В файле журнала я получил запросы делаются, но 403 ошибка:
/вар/Журнал/HTTPD/access_log:
"POST /networks_app/delete_expired_files HTTP/1.1" 403 2629 "-" "aws-sqsd/2.0"
и это в /вар/Журнал/AWS-sqsd/default.log:
message: sent to %[ http://localhost:80/networks_app/delete_expired_files] 2016-01-23T14:58:05Z http-err: d5f645cf-ce15-40bc-8ee3-34acb79e797b (4) 403 - 0.007
Вот мой views.py Код:
def delete_expired_files(request):
if request.method == 'POST':
users = DemoUser.objects.all()
for user in users:
documents = Document.objects.filter(owner=user.id)
if documents:
for doc in documents:
now = timezone.now()
if now >= doc.date_published + timedelta(days = doc.owner.group.valid_time):
doc.delete()
cron.yaml файл:
version: 1
cron:
- name: "delete_expired_files"
url: "/networks_app/delete_expired_files"
schedule: "* * * * *"
Если я получить доступ к URL через браузер он работает, он показывает GET запрос на LOG_FILE моего сервера веб-приложений ,
Что делать, чтобы рабочая среда выполняла задачу?
Почему, когда рабочий пытается отправить сообщение, он возвращает ошибку 403?
Связано ли это с правами на роль?
Должен ли я закодировать конкретный прослушиватель в Django?
Использует сельдерей - лучший способ решить эту проблему?