#axios #google-cloud-functions #dialogflow-es #dialogflow-es-fulfillment
# #axios #google-cloud-функции #dialogflow-es #dialogflow-es-выполнение
Вопрос:
Я разрабатываю чат-бота Messenger, который вызывает сторонние API для получения данных. API-интерфейсы обычно возвращают данные менее чем за 2 секунды, но когда я вызываю API-интерфейсы из выполнения диалогового потока (встроенная функция), первый вызов занимает более 20 секунд, чтобы получить данные, что повлияет на тайм-аут Dialogflow 5s. Последующие запросы выполняются менее чем за 2 секунды.
Я использую axios для вызова API. Есть предложения по улучшению времени отклика?
Ниже приведена функция, вызывающая API
function getArrearsData(agent,tenantId) {
console.log("Getting the Arrears Details");
return axios.get(`${baseUrl}api/Integrations/Arrears?tenantId=${tenantId}`)
.then((result) => {
if (result.data) {
if (result.data.responseCode == 12) {
let arrearsData = {};
if (result.data.arrears.length > 0) {
let paidToDate = moment(result.data.arrears[0].paidToDate).format('DD/MM/YYYY');
arrearsData = {
arrearsAmount: "$" result.data.arrears[0].arrearsAmount,
arrearsDays: result.data.arrears[0].arrearsDays,
paidToDate: paidToDate
};
} else {
arrearsData = {
arrearsAmount: "N/A",
arrearsDays: "N/A",
paidToDate: "N/A"
};
}
agent.add("");
agent.context.set({ name: 'rental_details', lifespan: 5, parameters: { arrearsDetails: arrearsData }});
agent.setFollowupEvent('ARREARS_DETAILS_EVENT');
} else {
console.log("getting arrears data failed!");
agent.add("");
agent.add("something wrong");
agent.setFollowupEvent('Q_AND_A_INTENT_EVENT');
}
} else {
console.log("getting arrears data failed!");
agent.add("");
agent.add("something wrong");
agent.setFollowupEvent('Q_AND_A_INTENT_EVENT');
}
});}
Комментарии:
1. Не могли бы вы опубликовать код, который вызывает API? Наблюдаете ли вы такое же поведение, если вызываете эти API-интерфейсы извне завершения?
2. Я бы также добавил некоторую временную метку в ваш код выполнения. Я думаю, я бы проверил, занимает ли запуск / инициирование функции выполнения много времени или это первый вызов вашего серверного сервиса, который занимает много времени. Если позже, то это может быть проблема не с Google, а с поставщиком внутренних услуг, которому вы звоните.
3. Я предлагаю внедрить ведение журнала, как сказал Колбан, чтобы сузить местоположение проблемы и любезно поделиться с нами результатами