Я создал свой собственный API, используя облачную оболочку с редактором движка приложений Google.Вот фрагмент кода, который отлично работает в тестировании:
app.get('/fetch_ticker', (req, res) => {
(async() => {
let pair = req.param('pair', "BTC/ETH");
let ex = req.param('exchange', "coinmarketcap");
let myArr = [];
let exchange = await new ccxt[ex]();
let tickers = await exchange.fetchTicker(pair);
myArr.push(tickers);
//Send req
res.status(200).send(myArr);
})()
});
Теперь, когда я пробую его после 'Gcloud app deploy' и запускаю его в работе, другие запросы get работают нормально, но когда 'ex 'равен' coinmarketcap ', он просто постоянно загружается и в итоге выдает 500 ошибок.
Обновление:
Вот лог:
2018-11-03 11:43:50 default[20181103t163752] ==== JS stack trace =========================================
2018-11-03 11:43:50 default[20181103t163752]
2018-11-03 11:43:50 default[20181103t163752] Security context: 0x3e6826325879 <JSObject>
2018-11-03 11:43:50 default[20181103t163752] 1: indexBy(aka indexBy) [/srv/node_modules/ccxt/js/base/functions/generic.js:~82] [pc=0x30a50d2a5374](this=0x32f
9351022d1 <undefined>,/* anonymous */=0x1e7ccf12dc59 <JSArray[37746]>,/* anonymous */=0x32f935144e51 <String[2]: id>,/* anonymous */=0x32f9351022d1 <undefined>)
2018-11-03 11:43:50 default[20181103t163752] 2: arguments adaptor frame: 2->3
2018-11-03 11:43:50 default[20181103t163752] 3: set_markets(aka setMarkets) [/srv/node_modules/ccxt/js/base/Exchange.js:613] ...
2018-11-03 11:43:50 default[20181103t163752]
2018-11-03 11:43:50 default[20181103t163752] FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
2018-11-03 11:43:50 default[20181103t163752] 1: node::Abort() [node]
Iпопытался увеличить объем памяти, используя узел --max_old_space_size = 4096 app.js, но ошибка все еще остается.