Синтаксис немного отличается:
Dictionary<int, string> names = new Dictionary<int, string>()
{
{ 1, "Adam" },
{ 2, "Bart" }
}
Примечание, что Вы эффективно добавляете кортежи значений.
Как заметка на полях: инициализаторы набора содержат аргументы, которые являются в основном аргументами любому , Добавляют () функция, которая пригождается относительно типа времени компиляции аргумента. Таким образом, если у меня есть набор:
class FooCollection : IEnumerable
{
public void Add(int i) ...
public void Add(string s) ...
public void Add(double d) ...
}
следующий код совершенно законен:
var foos = new FooCollection() { 1, 2, 3.14, "Hello, world!" };
Почему бы просто не запустить поток для выполнения обработки, а затем продолжить отправку ответа?
Прежде чем выбрать решение, необходимо определить, как будет выполняться процесс. То есть это один и тот же процесс для каждого пользователя, данные одинаковые и могут быть запланированы регулярно? или каждый пользователь что-то запрашивает, и результаты немного отличаются?
Например, если данные будут одинаковыми для каждого пользователя и могут выполняться по расписанию, вы можете использовать cron.
См .: http://www.b-list.org/weblog/2007/sep/22/standalone-django-scripts/ или http://docs.djangoproject.com/en/dev/howto/custom-management-commands/
Однако, если запросы будут нерегламентированными и вам потребуется что-то масштабируемое, способное выдерживать высокую нагрузку и являющееся асинхронным: что Вы действительно ищете систему очередей сообщений. Ваше представление добавит запрос в очередь, который затем будет обработан.
Есть несколько вариантов реализации этого в Django: Сервис Django Queue - это чисто django & python и простой, хотя последний коммит был в апреле, и похоже, что проект был заброшен. http://code.google.com/p/django-queue-service/
Второй вариант, если вам нужно что-то масштабируемое, распространяемое и использующее серверы очереди сообщений с открытым исходным кодом: сельдерей - это то, что вы нужно
http://ask.github.com/celery/introduction.html http://github.com/ask/celery/tree
Есть несколько решений этой проблемы, и лучший из них немного зависит от того, насколько тяжелой будет ваша рабочая нагрузка.
Если у вас небольшая рабочая нагрузка, вы можете использовать используемый подход от django-mailer , который должен определять модель «заданий», сохранять новые задания в базе данных, а затем заставлять cron время от времени запускать автономный скрипт для обработки заданий, хранящихся в базе данных (удаляя их когда сделано). Вы можете использовать что-то вроде django-chronograph , чтобы упростить планирование заданий
Если вам нужна помощь в понимании того, как написать сценарий для обработки задания, см. Статью Джеймса Беннета Автономные скрипты Django за помощью.
Если у вас очень высокая рабочая нагрузка, то есть вам потребуется более одного сервера для обработки заданий, тогда вы захотите использовать настоящую очередь распределения задач.