c# - 使用 twilio 从 asp.net 异步发送短信

标签 c# asp.net asynchronous twilio

我有一个 ASP.NET Web 应用程序,可以通知业务客户有关可用的约会。 场景如下。

  1. 页面按钮单击事件处理程序将新约会保存到数据库
  2. 注册客户的偏好与创建的新约会相匹配
  3. 首选项匹配的客户将通过 Twilio 发送带有约会详细信息的 SMS 消息。

我的问题是我需要将步骤 2 和 3 与页面的执行分开。因此,一旦创建约会,以下步骤将异步传递给辅助类,该辅助类在后台线程上处理匹配和 SMS 消息传递,同时页面控件返回并将用户重定向到另一个页面。后台类方法不返回任何值(public void)。

很抱歉没有早点发布代码。

创建约会.aspx.cs

  private void SaveAppointment()
{
    using (var db = new EntitiesModel())
    {
       //code to create a new appointment

     //Sending SMS messages to multiple clients

        SMSHelper myhelper = new SMSHelper();
        myhelper.SendApptSMS(newappt);

        //control returned to the page redirect to dashboard
        Response.Redirect("~/authuser/default.aspx");
    }
}

smshelper.cs

public async void SendApptSMS(Appointment newappointment)
{
    using (var db = new EntitiesModel())
    {
        //retrieve multiple clients that match preferences
    foreach (var item in clients)
   {
      //for each client send SMS message using Twilio's REST API
    }
        //Thread.Sleep(10000);

    }
}

我希望页面在调用异步方法后继续处理,然后在后台线程上执行。 这不会发生。 在 SMSHelper 发送完所有消息之前,不会到达 response.redirect。

希望这能解决问题。

最佳答案

为什么不在后台每分钟(左右)运行一次单独的服务或后台任务并运行 SendApptSMS() 方法?

关于c# - 使用 twilio 从 asp.net 异步发送短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13601800/

相关文章:

c# - 使用 Mono 在 Windows 中构建 Mac .app 文件

asynchronous - 不再使用时是否应该关闭 clojure core.async channel ?

c# - 如何在 .NET 应用程序中使用自定义鼠标光标?

c# - using 语句是否保留对其接收的对象的引用?

c# - System.Web.HttpException 文件不存在 - 页面加载正常 (ASP.NET)

单击按钮时 C# 代码隐藏未命中

java - SOA环境下webapp的实时数据管理(远程后端)

javascript - 在 NodeJS 上添加异步函数时出现错误

c# - 如何在代码隐藏中将图像添加到 Rss 中?

asp.net : is it possible to Split large ASP. NET 页面成碎片?