Nag*_*agu 2 c# asp.net sms multithreading
以前我发布了一个关于多线程的问题.实际上我的意图是通过使用c#和asp.net应用程序在同一时间点(例如:凌晨12:00)向1000(或更多)人发送短信.可以选择多线程概念来实现这一目标吗?
这个概念不需要多线程......
这个概念更像是一个任务经理/ Cron工作
如果你需要任何代码,请随时告诉我.
编辑完成所有步骤
如果您有托管解决方案,则在您的主机控制面板中,您可以设置一些任务计划,您可以设置为每n分钟运行一次脚本页面,如果是,请通过后续步骤.另一方面,如果您正在运行自己的服务器(IIS),请先执行此操作.
通过这种方式,您只需将系统配置为运行文件,就像在浏览器中执行该链接一样,每15分钟运行一次.
现在我们需要创建taskManager.aspx文件
public partial class taskManager : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DateTime dt = DateTime.Now;
// Run after midnight
if (dt.Hour == 0 && dt.Minute <= 15)
{
Write2Log("Schedule Job Started", LogType.INFO);
SendSMSFromList(
GetUsersList(),
GetSMSMessage());
Write2Log("Schedule Job Finished", LogType.INFO);
}
}
private string GetSMSMessage()
{
// Fetch the text from DB...
return "This is the message content that I will send as SMS";
}
private List<string> GetUsersList()
{
// fetch the list form DB...
return new List<string>();
}
private void SendSMSFromList(List<string> usersList, string message)
{
// send SMS's
foreach (string phoneNr in usersList)
{
// send message
mySMSAPI.Send(phoneNr, message);
}
}
private void Write2Log(string text, LogType type)
{
// Log to a file what's going on...
try
{
string filename = HttpContext.Current.Server.MapPath("") + "\\status.log";
using (StreamWriter sw = new StreamWriter(filename, true)) // open to append
{
// example: 2008-12-17 13:53:10,462 INFO - Schedule Job Finished
string write = String.Format("{0} {1} - {2}",
DateTime.Now,
type.ToString(),
text);
sw.WriteLine(write);
}
}
catch (Exception)
{ }
}
private enum LogType
{ INFO, WARNING, ERROR }
}
Run Code Online (Sandbox Code Playgroud)
完成...
为了这个例子,我只用一个文件制作了所有东西,你应该把事情分开......但我所追求的是向你展示它的原理.