我正在使用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")
感谢您的建议!
答案 0 :(得分:4)
API调用不是异步的,您需要使用其他方法来发送SMS异步,您可以使用以下任何一种方法: