【问题标题】:Async call in API made in Django在 Django 中进行的 API 中的异步调用
【发布时间】:2016-07-22 23:59:27
【问题描述】:

我将 DRF 与 Twilio SMS 发送服务一起使用。我已经在一些对象保存中添加了这段代码——我在一些 API 调用中这样做了。但正如我所见,Django 等待执行 Twilio 代码(可能等待响应),从 Twilio 服务器获得响应大约需要 1-2 秒。

我想优化我的 API,但我不确定如何异步发送 Twilio SMS 请求。这是我的代码。

def send_sms_registration(sender, instance, **kwargs):
    start = int(round(time.time() * 1000))

    if not instance.ignore_sms:
        client = TwilioRestClient(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN)

        activation_code = instance.activation_code

        client.messages.create(
            to      = instance.phone_number,
            from_   = DEFAULT_SMS_NAME,
            body    = SMS_REGISTRATION_TEXT + activation_code,
        )

    end = int(round(time.time() * 1000))
    print("send_sms_registration")
    print(end - start)



post_save.connect(send_sms_registration, sender=Person, dispatch_uid="send_sms_registration")

感谢您的建议!

【问题讨论】:

    标签: django python-3.x django-rest-framework twilio


    【解决方案1】:

    API调用不是异步的,你需要使用其他方法来异步发送短信,你可以使用以下任意一种:

    【讨论】:

      猜你喜欢
      • 2015-07-12
      • 2013-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多