Я надеюсь, что сейчас не буду использовать сельдерей. В документах Starlette они предоставляют два способа добавления фоновых задач:
Через Graphene: https://www.starlette.io/graphql/
class Query(graphene.ObjectType):
user_agent = graphene.String()
def resolve_user_agent(self, info):
"""
Return the User-Agent of the incoming request.
"""
user_agent = request.headers.get("User-Agent", "<unknown>")
background = info.context["background"]
background.add_task(log_user_agent, user_agent=user_agent)
return user_agent
Через JSON ответ: https://www.starlette.io/background/
async def signup(request):
data = await request.json()
username = data['username']
email = data['email']
task = BackgroundTask(send_welcome_email, to_address=email)
message = {'status': 'Signup successful'}
return JSONResponse(message, background=task)
Кто-нибудь знает, как добавить задачи в фон Старлетты с помощью Ариадны? Я не могу вернуть ответ JSONResponse в моем преобразователе, и у меня нет доступа к info.context ["background"]. Единственное, что я прикрепил к своему контексту, - это объект запроса.