Parallel.Foreach
могут сделать это. Вот пример того, как:
public static void DoIt(string a)
{
Console.WriteLine(a);
}
public static void Main(string[] args)
{
List symbolList = new List() { "AAPL", "QQQ", "FB", "MSFT", "IBM" };
Parallel.ForEach(symbolList, a => DoIt(a));
}
Вы можете управлять вызовом с помощью ParallelOptions
:
ParallelOptions options = new ParallelOptions() { MaxDegreeOfParallelism = 10 };
Parallel.ForEach(symbolList, options, a => DoIt(a));
О какой ошибке Grails сообщает, когда это не может получить соединение с базой данных? Тайм-аут? Отказанный?
Когда Вы запускаете свой тест, насколько загруженный поле? Процент ЦП, использование памяти, и т.д.
Возможно, что база данных именно так перегружается, что Grails приводит к таймауту получения соединений. Если Вы захотите обработать загрузку, то Вы захотите перейти к объединенным соединениям с БД. Без объединения Grails откроет и закроет соединение с БД с каждым запросом.
Проверьте свою mysql конфигурацию (/etc/mysql.conf, или это - локальный эквивалент), особенно макс. соединения, и макс. ведите на пользовательские настройки; это звучит, как будто это может прибывать из mysql и не чаш Грааля.