Я работаю над проектом python в Google App Engine, и я использую Parse для отправки push-уведомлений. Eyerything работает нормально, но я заметил некоторое отставание, когда мне нужно отправить несколько уведомлений на разные устройства, заданные POST
запросом на отдых для сервера Parse.Async POST запрос python в Google App Engine
Чтобы яснее:
У меня есть цикл с N элементами, для каждого элемента я должен послать уведомление толчка, и поэтому я должен сделать запрос POST для анализа и каждое соединение (конечно) займет около 300 мс будет завершено, поэтому выполнить полный цикл достаточно медленно.
Я думаю, что должно быть лучше, чтобы изменить запрос в запрос асинхронным, но после поиска по документации и на Google я не нашел четкого пример того, как делать это с urllib2
или urlfetch
и как передать заголовки с Разбор Key и Applicaton Id ..
Рабочих (не асинхронный) код
parse_connection = httplib.HTTPSConnection('api.parse.com', 443)
parse_connection.connect()
parse_app_id = parse_settings.APPLICATION_ID
parse_rest_api_key = parse_settings.REST_API_KEY
parse_connection.request('POST', '/1/push',
json.dumps({
"channels": ["blabla"],
"data": {
"alert": "A",
"title":"B",
"badge": "Increment",
"category": "C",
"sound": "default",
"additionalInfos": {"X": "Custom dict"}}
}),
{
"X-Parse-Application-Id": parse_app_id,
"X-Parse-REST-API-Key": parse_rest_api_key,
"Content-Type": "application/json"
})
return json.loads(parse_connection.getresponse().read())
Чтобы сделать это асинхронным я думаю, что я должен использовать urlfetch
с
rpc = urlfetch.create_rpc()
options = json.dumps({"channels": ["blabla"],
"data": {
"alert": "A",
"title": "B",
"badge": "Increment",
"category": "C",
"sound": "default",
"additionalInfos": {"X": "Custom dict"}},
})
urlfetch.make_fetch_call(rpc, "https://api.parse.com/1/push:443", options)
Но я не могу найти примеры, как добавлять заголовок ... любое предложение? Спасибо!
, кажется, работает, спасибо! – Nerkyator