2016-04-03 18 views
0

Twilio SMS送信サービスでDRFを使用しています。いくつかのオブジェクトの保存にこのコードを追加しました。これはAPI呼び出しのいくつかで行います。しかし、私はDjangoがTwilioコードが実行されるのを待っています(これはおそらく応答を待っています)、Twilioサーバーからの応答を得るのに約1〜2秒かかります。Djangoで作成されたAPIの非同期呼び出し

私は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") 

ありがとうございました!

答えて

3

APIの呼び出しは、あなたが以下のいずれかを使用することができ、SMS非同期の送信を行うために他の方法を使用する必要がある、非同期ではありません。

:シンプルな非同期タスク
  • celeryのためのグレート
  • 関連する問題