Ежедневные квоты URLFetch и ошибка «Сервис вызывается слишком много раз за один день: urlfetch» - PullRequest
0 голосов
/ 10 июля 2019

У меня есть сценарий / лист, который работает против страшной ошибки «Служба вызвана слишком много раз за один день: urlfetch». Я проверил «Квоты для Служб Google» здесь , но, судя по всему, не понимаю, почему я превышаю установленный лимит вызовов для получения URL-адреса в 20 000 в день. Я запускаю сценарий, который включает 6 экземпляров функции ImportJSON с разными URL-адресами в ячейки моей электронной таблицы, и этот сценарий запускается каждую минуту. Итак, мои расчеты составляют 6 вызовов в минуту = 360 вызовов / час = 8640 вызовов / день ... так что дает?

Я читал, что дневной лимит данных также может составлять 30 МБ, но, опять же, мои расчеты поставили меня ниже: 7,4 КБ / мин (общее количество данных, полученных за 6 вызовов) = 444 КБ / ч = 10656 КБ / день или 10,6 МБ / день.

Цель сценария, который я запускаю, состоит в том, чтобы автоматически обновить торговую электронную таблицу последними данными тикера и книги заказов для трех рынков Биткойн (XBTUSD, XBTEUR и XBTCAD) с биржи Kraken. Ниже приведена функция, которая вставляет вызовы importJSON в ячейки электронной таблицы:

function importJSONupdate() {
var d = new Date();
var timeStamp = d.toLocaleTimeString();

var ss = SpreadsheetApp.getActiveSpreadsheet();
var XBT_Orderbooks = ss.getSheetByName("XBT Orderbooks");

var XBTUSD_LAST = '=ImportJSON("https://api.kraken.com/0/public/Ticker?pair=XBTUSD", "/result/XXBTZUSD", "noHeaders", "' + timeStamp + '")';
XBT_Orderbooks.getRange('B129').setValue(XBTUSD_LAST);

var XBTUSD_ORDERBOOK = '=ImportJSON("https://api.kraken.com/0/public/Depth?pair=XBTUSD&count=30", "/result/XXBTZUSD", "noHeaders,noTruncate","' + timeStamp + '")';
XBT_Orderbooks.getRange('B134').setValue(XBTUSD_ORDERBOOK);

var XBTEUR_LAST = '=ImportJSON("https://api.kraken.com/0/public/Ticker?pair=XBTEUR", "/result/XXBTZEUR", "noHeaders", "' + timeStamp + '")';
XBT_Orderbooks.getRange('B130').setValue(XBTEUR_LAST);

var XBTEUR_ORDERBOOK = '=ImportJSON("https://api.kraken.com/0/public/Depth?pair=XBTEUR&count=30", "/result/XXBTZEUR", "noHeaders,noTruncate","' + timeStamp + '")';
XBT_Orderbooks.getRange('B135').setValue(XBTEUR_ORDERBOOK);

var XBTCAD_LAST = '=ImportJSON("https://api.kraken.com/0/public/Ticker?pair=XBTCAD", "/result/XXBTZCAD", "noHeaders", "' + timeStamp + '")';
XBT_Orderbooks.getRange('B131').setValue(XBTCAD_LAST);

var XBTCAD_ORDERBOOK = '=ImportJSON("https://api.kraken.com/0/public/Depth?pair=XBTCAD&count=30", "/result/XXBTZCAD", "noHeaders,noTruncate","' + timeStamp + '")';
XBT_Orderbooks.getRange('B136').setValue(XBTCAD_ORDERBOOK);

XBT_Orderbooks.getRange('B3').setValue(timeStamp);

}

Что-то, что я здесь неправильно вычисляю или не понимаю? Единственное, о чем я могу подумать, это то, что в электронной таблице также есть вызовы 2 GoogleFinance(), которые выбирают обменные курсы CADUSD и EURUSD. Может ли это быть учтено в моих расчетах использования? Кажется, функция GoogleFinance() обновляется по собственному расписанию, поэтому я не совсем уверен, как я могу объяснить это ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...