NodeJS Twilio的无服务器函数中的工作线程?

avkwfej4  于 11个月前  发布在  Node.js
关注(0)|答案(1)|浏览(114)

我正在使用Twilio的无服务器功能构建一个语音应用程序,我需要在收集用户语音输入后运行一个进程,该进程可能需要> 15秒才能执行,从而导致超时,我想我可以将呼叫保持/进入会议,启动一个工作线程进行处理,之后我可以修改呼叫保持并提供处理后的数据。
我已经验证了我可以使用工作线程来处理所需的数据并修改保持的调用。
但我不确定是否可行,如果可行,如何指定工作线程js文件的路径和名称。
例如,如何在下面的代码片段中指定worker.js?

const { Worker } = require('worker_threads');

// Create a new Worker Thread

const worker = new Worker('./worker.js', { workerData: { /* data */ } });

worker.on('message', (result) => {

  // Do something with the result

  console.log(result);

});

字符串
如果这是不可能的,有什么建议,我应该探索其他选项?或者是Twilio的无服务器功能不适合我的要求?

o0lyfsai

o0lyfsai1#

恐怕无服务器环境无法解决您所描述的问题。无服务器函数通常有最大执行时间。例如,Twilio无服务器函数的最大执行时间为10秒。同样,许多其他函数也有最大执行时间。这本质上不足以用于长时间运行的进程。即使您可以使用Workers API(许多无服务器平台不支持),你的主函数仍然会闲置等待,因此超过了最大执行时间。
附言:即使你找到了一个无服务器运行时,它的最大执行时间正好符合你的需求,使用无服务器运行时也可能是不可行的,因为你要按执行时间付费。
我建议在一个传统的(非无服务器环境)上运行这个过程。也许在你的长期运行过程完成后,可以通过webhook调用另一个Twilio无服务器函数。这样,你可以继续在Twilio无服务器上运行所有Twilio逻辑,而只在其他地方托管其他代码。

相关问题