Смена провайдера хранилища для моего бота привела к значительным задержкам во времени отклика - а иногда и вообще нет никакого отклика -
до: Память Память - отличное время отклика
после: хранилище BLOB-объектов Azure - довольно низкая производительность
Память для ботов должна использоваться только для установок без PROD - по крайней мере, при переходе на QA или разработчики PROD должны либо переключиться на «Blob», либо на CosmosDB - есликод бота был взят из примеров или сгенерирован генератором yeoman, поэтому обычно есть несколько встроенных комментариев для напоминания разработчикам.
Я использую SDK V4 - последний код бота от 2019 года - с использованием nodeJS -
до:
const memoryStorage = new MemoryStorage();
conversationState = new ConversationState(memoryStorage);
userState = new UserState(memoryStorage);
после:
const { BlobStorage } = require('botbuilder-azure');
const STORAGE_CONFIGURATION_ID = "myblogstorage";
// Get service configuration
const blobStorageConfig = botConfig.findServiceByNameOrId(STORAGE_CONFIGURATION_ID);
const blobStorage = new BlobStorage({
containerName: (blobStorageConfig.container || DEFAULT_BOT_CONTAINER),
storageAccountOrConnectionString: blobStorageConfig.connectionString,
});
conversationState = new ConversationState(blobStorage);
userState = new UserState(blobStorage);
Я ожидал некоторой очевидной задержки из памяти для вызова удаленного сервиса - но я боюсь, что такая значительная задержка вряд ли приемлема.
1.) Это только у меня - или другие нашли такую же проблему?
2.) Есть ли что-то еще, что мне нужно рассмотреть, чтобычтобы исправить это - например, перейти к определенному классу обслуживания хранилища, который может открываться и реагировать быстрее (что?), или сделать функции «асинхронными», которые все еще блокируют (что, любой передовой опыт?), или «подогреть» / подготовитьсоединение раньше, чтобы избежать рукопожатия во время диалога - что-то вроде этого?
Я обнаружил некоторые жалобы на производительность прямой / бот-фреймворк еще в 2017 году - но предположим, что они больше не действительны- Прямая линия была достаточно быстрой с MemoryStorage