Я настоятельно рекомендую вам использовать систему очередей сообщений в вашем приложении. mjwills предоставили два замечательных программных решения для брокера сообщений в разделе комментариев:
Необходимо выполнить интеграцию, прежде чем вы сможете использовать любое из этих решений в своем приложении, но впоследствии это будет так просто, как:
[POST]
public void SaveData()
{
var msg = new SaveDataMessage();
/* populate msg object... */
this.queueClient.Publish(msg);
}
Этот псевдокод публикует сообщение в очереди. На другом конце абонент очереди будет получать и обрабатывать эти сообщения последовательно, например:
public void OnMessage(SaveDataMessage msg)
{
/* process message... */
}
Дополнительные преимущества: i) подписчик может работать в независимом процессе, что означает, что ваш запрос API может быть немедленно возвращен, а фоновый работник позаботится об обработке сообщений ii) эта архитектура будет совместима с API-интерфейсами со сбалансированной нагрузкой, поскольку ваше приложение расширяется.
Определенно стоит приложить усилия, чтобы встроить эту структуру на ранних этапах в ваше приложение. Это даст вам больше гибкости и производительности в долгосрочной перспективе.
Я написал статью на эту тему, которая содержит более подробную дополнительную информацию к этому ответу: Использование очередей для разгрузки Web API