Что ж, поскольку ваши потоки будут связаны с вводом-выводом, хорошая новость заключается в том, что для этого подойдут как потоки Ruby 1.8, так и 1.9.В Ruby 1.8 используются «потоки пользовательского пространства», то есть при создании новых потоков в Ruby новые потоки ОС не создаются.Это плохо для многозадачности ЦП, так как на самом деле одновременно работает только один поток Ruby, но хорошо для многозадачности ввода-вывода.Ruby 1.9 использует настоящие потоки и подойдет для любого из них.
Количество потоков, которые вы можете создать, зависит от вашей системы.Конечно, существуют практические ограничения, но вы, вероятно, не хотите приближаться к ним.Во-первых, если серверы, с которых вы загружаетесь, не очень медленные и ваше соединение не очень быстрое, всего несколько потоков будут насыщать ваше интернет-соединение.Кроме того, если вы захватываете много страниц с одного сервера, то сразу 500 запросов на него из 500 потоков тоже не принесут пользы.
Я бы начал с малого: 10или 20 потоков, работающих одновременно.Увеличьте или уменьшите это в зависимости от нагрузки на сервер, пропускной способности и т. Д. Существует также проблема одновременных подключений к базе данных MySQL.В зависимости от того, как настроены ваши таблицы и насколько они велики, попытка одновременно вставить слишком много данных не будет работать очень хорошо.