Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-有没有更好的方法发送批量Twilio短信?_Python_Django_Django Views_Twilio_Twilio Api - Fatal编程技术网

Python Django-有没有更好的方法发送批量Twilio短信?

Python Django-有没有更好的方法发送批量Twilio短信?,python,django,django-views,twilio,twilio-api,Python,Django,Django Views,Twilio,Twilio Api,我目前正在使用以下views.py函数sendsmss来允许用户在完成html表单后向其订阅者列表发送大量sms消息,其中包含他们要发送给订阅者的sms: def sendsmss(request): if request.method == "POST": subscribers = Subscriber.objects.all() sms = request.POST['sms'] mytwilionum = "+134212345

我目前正在使用以下views.py函数sendsmss来允许用户在完成html表单后向其订阅者列表发送大量sms消息,其中包含他们要发送给订阅者的sms:

def sendsmss(request):
    if request.method == "POST":
        subscribers = Subscriber.objects.all()

        sms = request.POST['sms']

        mytwilionum = "+13421234567"

        ACCOUNT_SID = TWILIO_ACCOUNT_SID
        AUTH_TOKEN = TWILIO_AUTH_TOKEN
        client = Client(ACCOUNT_SID, AUTH_TOKEN)

        for subscriber in subscribers:
            subscriber_num = subscriber.phone_number
            client.messages.create(
                to= subscriber_num,
                from_=mytwilionum,
                body=sms
            )

        return redirect('homepage')

这个函数可以工作,但我只测试了3个订户的批量发送。如果有100或1000个订户,这需要多长时间。。若需要很长时间,那个么用户会在重定向到主页之前等待任务完成吗?在Django有更好的方法吗

这些问题非常主观,我将尝试相应地回答:

如果有100或1000个订户,这需要多长时间

这完全取决于Twilio的性能。API客户机正在使用请求库,它正在为每个订阅者逐个创建消息。在理想情况下,所花费的时间似乎与订阅者的数量成正比

若需要很长时间,那个么用户会在重定向到主页之前等待任务完成吗

根据您当前的实施情况,是的。
返回重定向(“主页”)
仅在消息发送到所有订阅者后执行。在这种情况下,会抛出一个错误,页面不会重定向到主页

在Django有更好的方法吗


是的,有。您可以使用异步作业队列,例如,并将其连接到。在这种情况下,您可以在芹菜中启动异步任务,并立即向用户返回响应。您还可以选择向用户显示正在运行的芹菜任务的进度(如果需要)。

您可以使用类似“谢谢”的命令使用作业队列。一旦我学会了芹菜,它就相对容易实现了。是否值得花时间来实现这个单一用例?我知道我的问题包括这一个都是非常主观的,但请让我知道你的想法。我认为如果你想让用户有一个良好的用户体验,这是工作检查。