当前位置: 首页 > 知识库问答 >
问题:

多线程/多处理避免响应超时

龚凯泽
2023-03-14

我正在使用Twilio的SMS网关来响应客户传入的短信。

但是,我的处理需要相当长的时间(大约20秒),在此期间,我从Twilio收到一个超时。

我在想一个防止超时的方法。我怎样才能加快处理时间?耗时最长的部分是我上传一些图像。我在想我可以在不同的线程中启动这个过程。我的服务器只有一个核心,那么多线程会有好处吗?

共有1个答案

赏夕
2023-03-14

不要试图在Twilio帖子上回复客户。只需捕捉帖子中的细节,并将其排队等待后台处理,并立即响应Twilio。并从您的后台流程响应您的客户通过短信使用twilio API。

您可能希望签出celery或类似的东西以进行后台任务队列处理。http://www.celeryproject.org/

 类似资料:
  • 我正试图用tkinter编写一个Python GUI程序。 我想做两根线。一个使用main_form函数运行,以防止tkinter保持更新和循环(避免“无响应”)。 另一个,当按钮1(btn1)被单击时,使函数sci_thread()开始运行,并启动执行长时间代码main_scikit的thread2。 但是tkinter一直没有回应。 下面是我的代码:

  • 我有一个图像路径列表,我想在进程或线程之间划分,以便每个进程处理列表的某些部分。处理包括从磁盘加载图像,进行一些计算并返回结果。我正在使用Python 2.7 下面是我如何创建辅助进程 我所面临的问题是,当我在initializer函数中记录初始化时间时,我知道worker不是并行初始化的,而是每个worker都以5秒的间隔初始化,下面是供参考的日志 我尝试过使用将同时启动辅助线程 我知道Wind

  • 问题内容: 我试图理解多处理比线程的优势。我知道多处理绕过了全局解释器锁,但是还有什么其他优点,线程不能做同样的事情? 问题答案: 该模块使用线程,该模块使用进程。不同之处在于线程在相同的内存空间中运行,而进程具有单独的内存。这使得在具有多处理的进程之间共享对象更加困难。由于线程使用相同的内存,因此必须采取预防措施,否则两个线程将同时写入同一内​​存。这就是全局解释器锁的作用。 生成过程比生成线程

  • null 我更新了我的步骤并添加了一个ThreadPoolTaskExecutor,如下所示 在此之后,我的处理器将被多个线程调用,但使用相同的源数据。我还有什么需要做的吗?

  • 我正在尝试使用多个处理器类在处理器步骤中处理记录。这些类可以并行工作。目前我已经编写了一个多线程步骤,其中我 设置处理器类的输入和输出行 提交给遗嘱执行人服务 获取所有未来对象并收集最终输出

  • 我正在开发一个windows应用程序,它以600Hz的频率从传感器接收数据。在五分之二的情况下,我的IO线程成功地从传感器读取4字节的数据,并将其传递给GUI线程。 问题是五次中有三次,QSerialPort有无法解释的超时,其中QSerialPort的waitForReadyRead()返回false和serial。errorString()有超时错误。在这种情况下,它将永远不会读取数据。如果我