Люди, имеющие дело со Steam, наверняка слышали о таких сайтах: http://csgo.steamlytics.xyz/.
Для обучения я попытаюсь сделать что-то вроде того же API, что и у них, но у меня есть один вопрос. Я добрался до той части, где он получает имя каждого элемента и делает запрос к URL-адресу истории рынка Steam, берет оттуда данные и помещает их в БД. Существует 6844 элемента, и я установил тайм-аут для каждого запроса в 2 секунды, поэтому, если я правильно рассчитал, для передачи всех данных элементов в базу данных потребуется около 6 часов. Вопрос вот в чем, есть ли возможность ускорить процесс? Что касается сайта steamlytics, они обновляют данные каждые 12 часов, поэтому я не верю, что они обновляют цены каждые 6 часов. Вот мой код:
for (var i = 0; i < names.items.length; i++) {
setTimeout(function(i) {
var name = names.items[i].market_hash_name;
scrapeItems(names.items[i].market_hash_name, function(data) {
var total = 0;
var price = 0;
var average = 0;
var count = 0;
var data = JSON.parse(data);
for (var i = 0; i < data.prices.length; i++) {
var dataa = {
name: name,
date: data.prices[i][0],
price: data.prices[i][1],
sales: data.prices[i][2]
};
connection.query('INSERT INTO item_histories SET ?', dataa, function(err) {
if (err) {
console.log(err);
} else{
}
});
}
});
console.log("Inserted data to DB " + name);
}, i * 2000, i);
}