Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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
.NET Windows服务-在创建数据库记录时触发操作的最有效方法是什么?_.net_Sql Server_Windows_Service - Fatal编程技术网

.NET Windows服务-在创建数据库记录时触发操作的最有效方法是什么?

.NET Windows服务-在创建数据库记录时触发操作的最有效方法是什么?,.net,sql-server,windows,service,.net,Sql Server,Windows,Service,我有几个不同的应用程序,主要是ASP.NET web应用程序,它们生成挂起的电子邮件数据库记录 每分钟,我都会启动一个带有windows任务的可执行文件,以清除挂起的电子邮件缓冲区 我的目标是把这一分钟的间隔缩短到一秒钟 我打算使用windows服务 有比每秒轮询挂起的电子邮件数据库表更好的方法吗? 虽然我确信MSSQL可以永远每秒处理一次事务,但对于一个一天只能发送80封电子邮件的应用程序来说,它并不是一个理想的解决方案 您的实现是100%完美的。您可以使用windows服务,也可以使用win

我有几个不同的应用程序,主要是ASP.NET web应用程序,它们生成挂起的电子邮件数据库记录

每分钟,我都会启动一个带有windows任务的可执行文件,以清除挂起的电子邮件缓冲区

我的目标是把这一分钟的间隔缩短到一秒钟

我打算使用windows服务

有比每秒轮询挂起的电子邮件数据库表更好的方法吗?


虽然我确信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触发器触发发送服务。