.NET Windows服务-在创建数据库记录时触发操作的最有效方法是什么?
我有几个不同的应用程序,主要是ASP.NET web应用程序,它们生成挂起的电子邮件数据库记录 每分钟,我都会启动一个带有windows任务的可执行文件,以清除挂起的电子邮件缓冲区 我的目标是把这一分钟的间隔缩短到一秒钟 我打算使用windows服务 有比每秒轮询挂起的电子邮件数据库表更好的方法吗?.NET Windows服务-在创建数据库记录时触发操作的最有效方法是什么?,.net,sql-server,windows,service,.net,Sql Server,Windows,Service,我有几个不同的应用程序,主要是ASP.NET web应用程序,它们生成挂起的电子邮件数据库记录 每分钟,我都会启动一个带有windows任务的可执行文件,以清除挂起的电子邮件缓冲区 我的目标是把这一分钟的间隔缩短到一秒钟 我打算使用windows服务 有比每秒轮询挂起的电子邮件数据库表更好的方法吗? 虽然我确信MSSQL可以永远每秒处理一次事务,但对于一个一天只能发送80封电子邮件的应用程序来说,它并不是一个理想的解决方案 您的实现是100%完美的。您可以使用windows服务,也可以使用win
虽然我确信MSSQL可以永远每秒处理一次事务,但对于一个一天只能发送80封电子邮件的应用程序来说,它并不是一个理想的解决方案 您的实现是100%完美的。您可以使用windows服务,也可以使用windows计划程序计划高频作业
如果您在这里实现缓存。不必要地增加不需要的实现。我建议您保持实现不变,这意味着轮询作业的频率为1秒。您的实现是100%完美的。您可以使用windows服务,也可以使用windows计划程序计划高频作业
如果您在这里实现缓存。不必要地增加不需要的实现。我建议您保持实现不变,这意味着轮询作业的频率为1秒。SQL Server已经有了必要的基础结构,可以通过该过程完成此操作。在代码中,不要填充挂起的电子邮件表,而是调用
sp\u send\u dbmail
,让SQL Server驱动邮件传递
sp\u send\u dbmail
依次基于打开状态。如果您不想使用DBMail,可以直接利用激活机制,该机制允许您以非轮询方式监视消息队列。激活后,您几乎会有瞬间延迟(亚秒),不需要每秒轮询更改。SQL Server已经有了必要的基础结构,可以通过该过程完成此操作。在代码中,不要填充挂起的电子邮件表,而是调用sp\u send\u dbmail
,让SQL Server驱动邮件传递
sp\u send\u dbmail
依次基于打开状态。如果您不想使用DBMail,可以直接利用激活机制,该机制允许您以非轮询方式监视消息队列。激活后,您几乎会有瞬间延迟(亚秒),不需要每秒轮询更改。也许有一些共享缓存解决方案易于实现?我可以在写入DB记录的同时将记录转储到缓存中。也许有一种方法可以使用实际的SQL Server触发器触发发送服务。也许有一些共享缓存解决方案易于实现?我可以在写入DB记录的同时将记录转储到缓存中。也许有一种方法可以使用实际的SQL Server触发器触发发送服务。