一 定时任务基础:
MQ:Message Queue
消息队列服务器:MSMQ、ActiveMQ、Redis等
项目任务:确定邮件的发送,重置密码的发送(发送可能会很慢,而且有可能还需要重试),用消息队列把注册过程和邮件发送过程分开
二 示例:
//testMessageQueue.csProj
namespace testMessageQueue { class Program { static void Main(string[] args) { /* while(true) { string email=Console.ReadLine(); using(IRedisClient client=RedisManager.ClientManager.GetClient()) { client.EnqueueItemOnList("TestEmail", email); } } */ using(IRedisClient client=RedisManager.ClientManager.GetClient()) { while(true) { string email = client.DequeueItemFromList("TestEmail"); if(email==null) { Console.WriteLine("等待输入"); Thread.Sleep(100); continue; } Console.WriteLine("发送邮箱:eamil=" + email); } } Console.ReadKey(); } } public class RedisManager { public static PooledRedisClientManager ClientManager { get; private set; } //内部可写,外部只能读 static RedisManager() { RedisClientManagerConfig redisConfig = new RedisClientManagerConfig(); redisConfig.MaxWritePoolSize = 128; redisConfig.MaxReadPoolSize = 128; ClientManager = new PooledRedisClientManager(new string[] { "127.0.0.1" }, new string[] { "127.0.0.1" }, redisConfig); //在哪几个ip上进行集群的读写分离操作 } } }