如何实现多线程数据共享.同时呼叫一些用户是否有排队?



是否可以在dashha .ai中同时调用一些用户?同时调用的最大计数以及如何实现

已通过对话队列实现的同步呼叫

同时呼叫限制

  1. 实例限制
    实例限制由您在sdk应用程序中设置。
    必须通过参数concurrency初始化在application.start方法(默认值- 1)

    await application.start({ concurrency: 10 });
    
  2. 集团限制
    所有用户都有一个默认值但是,如果你使用的是自定义组,你应该设置max-concurrency你可以设置和更新max-concurrency命令行
    创建组

    示例
    dasha group create group_name --max-concurrency=50  
    

    和更新组

    dasha group update group_name --max-concurrency=50  
    

    应用程序(实例)将使用哪个组由deploy方法定义:

    dasha.deploy("app", { groupName: "Default" }); 
    
  3. 客户限制
    此限制只能根据需要更改(您不能手动更改它,至少现在)

应用

您需要指定如何通过会话队列处理呼叫:对于可以启动的呼叫,您必须指定ready事件

application.queue.on("ready", async (key, conversation) => {
conversation.input = getInput(key); // getInput must return an object that consist of input variables for a call 
const result = await conversation.execute();  // start conversation/call
});

此事件将为每个呼叫异步启动

同时呼叫-将尽可能多的呼叫推入队列(例如,将一个呼叫添加到队列中,必须在一小时内启动,否则将超时):

application.queue.push("some_unique_key", {
after: new Date(Date.now()),
before: new Date(Date.now() + 60 * 60 * 1000)
});

当您有空闲限制和队列中准备启动的调用时,它们将尽快被处理

最新更新