【问题标题】:Twilio issues with multithreading多线程的 Twilio 问题
【发布时间】:2016-03-01 11:03:27
【问题描述】:

这是一个软件设计问题,而不是编码问题。

我即将实现一项功能,我可以使用 Twilio 的短信和语音 API 验证用户的电子邮件和电话号码。

我当前的实现在应用启动时实例化了一个语音客户端,然后每当任何用户决定验证电子邮件或语音时,我都会重用这个客户端。

问题:将 Twilio 客户端实例化一次然后每次都重新使用它是一个好主意,还是应该在每次需要时都创建一个新客户端?

我在网上浏览过文章,但没有找到任何结论。希望在这里澄清。

【问题讨论】:

    标签: multithreading architecture twilio


    【解决方案1】:

    您正在查看 twillo 客户端是否是线程安全的。快速谷歌搜索发现:Twilio Threaded Messages。我自己没有查看源代码,但我认为这是一个可能的答案,是的,它是线程安全的。

    【讨论】:

      【解决方案2】:

      我不熟悉 Twilio。但通常,由于第 3 方 API 不在我们的控制范围内,其稳定性、性能等都是问题,并且您可能希望更改为其他服务提供商。所以,首先,尽量将你自己的逻辑与第三个逻辑解耦。例如,为此逻辑设计一个接口,并为 Twilio 设计一个实现。

      其次,您需要测试 Twilio 客户端实例,确保实例化后它可以长时间保持工作,如果您的编程语言或运行时以多线程方式工作,您还需要测试以确保实例在被多线程共享时可以正常工作(如果不是,则该实例不是线程安全的,您可以考虑对其使用某种互斥锁样式)。

      另外,如果第三方服务执行不稳定,或者执行需要时间等,特别是对于您的邮件/短信验证案例,不需要调用服务同步并等待响应。您可以考虑使用工作队列,将所有任务放入队列,并创建一些工作人员,在异步线程中运行,从队列中获取任务并执行。

      【讨论】:

      • 谢谢泰迪,第一和第三已经完成了。只是检查如何做第二个。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      相关资源
      最近更新 更多