asp.net - 在 ASP.NET 页面中执行批量处理

标签 asp.net ssis bulk email-templates

我们需要能够在特定日期或满足某些业务条件时发送自动电子邮件。我们正在设置此系统以与现有的 ASP.NET 网站一起使用。我在这里与其他开发人员之一聊天并讨论了一些问题。

注意事项:

  • 我们需要的所有信息都已在 ASP.NET 网站中建模
  • 生成电子邮件所需的一些业务逻辑也已在网站中

我们认为理想的解决方案是拥有一个单独的可执行文件,该可执行文件计划在夜间运行并进行处理和发送电子邮件。该解决方案有 2 个主要问题:

  • 如果网站已更新(业务逻辑或模型)但意外丢失了可执行文件,则可执行文件可能会停止发送电子邮件,或者更糟的是,根据过时的逻辑发送电子邮件。
  • 我们希望使用类似 this 的东西使用 UserControls 来模板化电子邮件,我认为这在 ASP.NET 网站之外是不可能的

第一个问题可以通过构建和部署脚本来避免(无论如何我们目前正在研究),但我认为我们无法解决第二个问题。

因此我们决定的解决方案是让 SSIS 定期调用一个 ASP.NET 页面,并让它执行一定数量的处理(比如 30 秒)然后返回。我知道 ASP.NET 页面不是进行这种处理的理想场所,但这似乎最能满足我们的要求。我们考虑生成一个新线程(不是来自工作线程池)来进行处理,但决定如果这样做,我们将无法使用返回的页面来表示成功或失败。通过在页面的生命周期内进行处理,我们可以使用页面内容来指示处理过程。

所以问题是: 此设置是否存在任何技术问题?

显然,如果您尝试过类似的操作,我们将不胜感激任何成功/失败的报告。以及替代设置的建议。

干杯,

最佳答案

不要使用 asp.net 线程来执行此操作。如果站点正在生成您创建或触发电子邮件发送所需的一些信息,则让站点将一些信息写入文件或数据库。

创建一个 Windows 服务或计划进程,从该文件或数据库中收集所需的信息,并在完全独立的进程/线程上运行电子邮件发送进程。

您要避免的是由于进程处理程序的限制而导致您的站点崩溃或使您的电子邮件程序崩溃。根据您在问题标题中使用的“批量”一词,两者需要相互独立。

关于asp.net - 在 ASP.NET 页面中执行批量处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2097834/

相关文章:

c# - System.InvalidOperationException : The type [XYZ] may not be used in this context. BUG确认

sql-server - 从 SQL Server 中的 Excel 导入时有什么方法可以克服限制吗?

sql-server - SSIS foreach 循环将所有唯一客户分组到一个表中并将它们写入自己的文件

ios - 使用 SQLite 和 CoreData 批量插入

java - Spring Batch 一次处理多个项目

sql - postgresql:如何获取使用批量 copy_from 插入的行的主键?

c# - 获取引荐来源网址的网络服务器名称

c# - 使用 linq 查询时的行号

c# - 将数据类型 nvarchar 转换为日期时间 SQL Server 时出错

SSIS 2008 : Changing a Data Source's Connection String Not Reflecting in Referencing Packages