Если вам нужно сделать 10 000 запросов к службе, это означает, что API службы анемичен - возможно, основан на CRUD, разработан как тонкая оболочка над базой данных вместо реальной службы.
Один «запрос» к хорошо спроектированной службе должен передавать всю информацию, необходимую для выполнения одной «единицы работы» - иными словами, эти 10 000 запросов могут быть с большой вероятностью объединены в один запрос или, по крайней мере, маленькая горстка запросов. Это особенно важно, если запросы отправляются на удаленный сервер или могут занимать много времени (а 2-3 секунды - это чрезвычайно длительное время в вычислениях).
Если у вас нет контроля над службой, если у вас нет возможности изменить спецификацию или API - тогда, я думаю, вам будет очень сложно. Одна машина просто не может обрабатывать 10 000 исходящих соединений одновременно; это будет бороться даже с несколькими сотнями. Вы можете попытаться распараллелить это, но даже если вы достигнете десятикратного увеличения пропускной способности, это все равно займет полчаса, что является той задачей, которую вы, вероятно, не хотите запускать на общедоступном веб-сайте ( но тогда, может быть, вы знаете, я не знаю специфику).
Возможно, вы могли бы более конкретно рассказать об окружающей среде, архитектуре и о том, что вы пытаетесь сделать?
В ответ на ваше обновление (возможно, тысячи пользователей одновременно выполняют действие, требующее отправки одного или двух SMS-сообщений для каждого):
Это похоже на сценарий, в котором вы должны использовать Message Queuing . На самом деле не так уж сложно настроить решение с использованием WCF . Вот некоторые из основных причин использования очереди сообщений:
- отправлено большое количество сообщений;
- Отправляющее приложение не может позволить себе отправлять их синхронно или ждать какого-либо ответа;
- Сообщения должны в конечном итоге быть доставлены.
И ваши требования соответствуют этому как перчатка. Поскольку вы уже в стеке Microsoft, я определенно рекомендую асинхронную службу WCF, поддерживаемую MSMQ.