슬랙 이벤트 API를 사용하여 나의 슬랙봇과 대화를 녹음하고 있습니다."반환"하지 않고 HttpResponse (상태 = 200) 보내기 - 보낼 곳?
Events API는 HTTP POST로 장고 서버에 메시지를 푸시합니다. Slack은 3 초 내에 HTTP 200 응답을 기대하며 그렇지 않으면 메시지를 다시 POST합니다.
이벤트를 저장/처리하고 싶지만 처리가 3 초 내에 완료되지 않을지 잘 모르겠습니다. HTTP Status 200을 Slack으로 보내고 프로세스를 계속 진행하기를 원하지만 어디로 보낼지 모르겠다.. 보통, 나는 return HttpResponse(status=200)
이고 python은 대상/전송을 관리합니다.
어떻게 응답 URI를 식별합니까? HTTP Status 200
(urllib2
)을 보낼 수 있습니까?
import json
import urllib2
from django.http import HttpResponse
def processEvent(event):
# do some stuff that takes longer than 3 seconds
return
def incomingEvent(request):
event = json.loads(request.body)
url = request.?????
req = urllib2.Request(url, HttpResponse(200))
processEvent(event)
urllib2를 사용하여 이와 같은 응답을 반환 할 수 없습니다. 일반적인 접근법은 [Celery] (http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html)와 같은 것을 사용하여'processEvent' 태스크를 비동기 적으로 실행하는 것입니다. – Alasdair