Бот показывает, что не удалось отправить при попытке получить результат через api calll - PullRequest
0 голосов
/ 25 мая 2018

Я создаю приложение BOT, и бот отображает данные, основанные на данных, которые выбираются после выполнения вызова API для вызова CRM. API требует времени, а BOT показывает ответ, но поскольку вызов API занимает много времениBOT показывает, что ошибка не может быть отправлена, но после извлечения данных она работает должным образом. Как преодолеть это. Мой код выглядит так

 private async Task GetData(IDialogContext context, IAwaitable<string> result)
        {
            string prescriber = await result;
            CRMInteraction crmConnect = new CRMInteraction();
            var prescriberdetail = await crmConnect.searchData(prescriber);

            this.NormalFlag = true;
            await context.PostAsync(prescriberdetail);
            context.Done("You are successfully registered.");

        }

1 Ответ

0 голосов
/ 28 мая 2018

вызов API занимает много времени, пока BOT показывает, что ошибка не может быть отправлена, но после выборки данных он работает нормально

Я могу воспроизвести ту же проблему на моей стороне, если я сделаю запросна службу API, которая занимает много времени, чтобы вернуть ответ.В этом выпуске github: «Веб-чат показывает повтор, но сообщение действительно отправлено боту» , мы можем знать, что WebChat / DirectLineJS имеет 20-секундный таймаут ,которая будет причиной этой проблемы.

Чтобы решить эту проблему, вы можете попробовать:

1) по возможности оптимизировать службу API, чтобы уменьшить время отклика

2) изменить логику кода: выполнить выборку данныхОперация в фоновом задании / задании и отправка упреждающего сообщения, чтобы уведомить пользователя, когда выборка данных завершена / пользователь успешно зарегистрирован.

Примечание: следующие статьи могутпомочь вам узнать проактивные сообщения, вы можете проверить его.

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