GAE-готовые асинхронные операции в Python? - PullRequest
3 голосов
/ 29 февраля 2012

У меня есть приложение Python, делающее 3 разных вызова API один за другим в одном и том же блоке кода. Я хотел бы выполнить эти вызовы асинхронно, а затем выполнить действие, когда все они завершены.

Пара замечаний:

  • Другие ответы, касающиеся асинхронных действий, указывают на фреймворки, такие как Twisted и Celery, но я создаю приложение Web2Py для GAE, поэтому эти фреймворки на основе демонов не являются опцией AFAIK.
  • Я использую библиотеки обертки API для различных API, поэтому мне интересно, есть ли асинхронное решение, которое может быть реализовано на уровне потока, а не на уровне запроса http?

Ответы [ 3 ]

3 голосов
/ 01 марта 2012

Python поддерживает асинхронные вызовы URL Fetch, которые могут быть полезны: http://code.google.com/appengine/docs/python/urlfetch/asynchronousrequests.html

1 голос
/ 29 февраля 2012

Очереди задач может привести вас туда. Я не вижу никаких обещаний об отзывчивости, но вы точно можете контролировать, сколько задач запускается в секунду .

1 голос
/ 29 февраля 2012

Если вы храбры, вы можете попробовать экспериментальный новый DB API, NDB. Он имеет асинхронные API для работы с хранилищем данных + выборка URL. Если это то, что вы надеялись сделать асинхронно, то вам повезло.

...