ASP.NET 线程与 Windows 服务
ASP.NET Thread vs Windows Service
我正在开发使用 ASP.NET (C#) & SQL Server 2000 开发的业务应用程序。我想开发一种机制来自动从我的 SQL 每 5 分钟从服务器数据库到 sybase 数据库。
据我目前所知,有两种方法可以实现。
使用计时器在我的 ASP.NET 应用程序中启动一个线程,该线程从 SQL 服务器读取数据并写入 Sybase。
开发一个 Windows 服务,从 SQL 服务器读取数据并写入 Sybase。
所以我的问题是:
- 哪个选项最好?
- 每个选项的优缺点是什么?
- 是否有任何其他方法可用于进行此数据传输?
我会为此选择 Windows 服务。 ASP.NET 对这类任务来说不是一个好的解决方案——毕竟,即使它没有发送数据。除非您考虑 Task
API,并异步编程 ASP.NET 网络应用程序来执行此操作,否则您将犯错误。也不确定您的环境是否支持所有现代功能(例如 Task
API 或 SQL 服务器中的作业具有所有功能和服务),这就是为什么本地服务将是一个完美的方式。
private async Task saveData() {
// Copy the data
// Wait for 5 minutes "asynchronously"
Task.Delay(5 * 60 * 1000); // 5 minutes
}
最后,只是迭代它,while(true)
也许会为你做这个。但是,在大多数情况下,您只会搬起石头砸自己的脚。
我建议使用 Windows 服务,或任何
- 托管
- 基于定时器
- 异步
... 服务,每 n 分钟执行一次任务。
除此之外,我建议考虑 SQL 服务器本身来为您完成这项工作。这是另一个演示如何执行此操作的答案:Execute stored procedure from a Trigger after a time delay; create the jobs in the SQL Agent Job. https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job
我正在开发使用 ASP.NET (C#) & SQL Server 2000 开发的业务应用程序。我想开发一种机制来自动从我的 SQL 每 5 分钟从服务器数据库到 sybase 数据库。
据我目前所知,有两种方法可以实现。
使用计时器在我的 ASP.NET 应用程序中启动一个线程,该线程从 SQL 服务器读取数据并写入 Sybase。
开发一个 Windows 服务,从 SQL 服务器读取数据并写入 Sybase。
所以我的问题是:
- 哪个选项最好?
- 每个选项的优缺点是什么?
- 是否有任何其他方法可用于进行此数据传输?
我会为此选择 Windows 服务。 ASP.NET 对这类任务来说不是一个好的解决方案——毕竟,即使它没有发送数据。除非您考虑 Task
API,并异步编程 ASP.NET 网络应用程序来执行此操作,否则您将犯错误。也不确定您的环境是否支持所有现代功能(例如 Task
API 或 SQL 服务器中的作业具有所有功能和服务),这就是为什么本地服务将是一个完美的方式。
private async Task saveData() {
// Copy the data
// Wait for 5 minutes "asynchronously"
Task.Delay(5 * 60 * 1000); // 5 minutes
}
最后,只是迭代它,while(true)
也许会为你做这个。但是,在大多数情况下,您只会搬起石头砸自己的脚。
我建议使用 Windows 服务,或任何
- 托管
- 基于定时器
- 异步
... 服务,每 n 分钟执行一次任务。
除此之外,我建议考虑 SQL 服务器本身来为您完成这项工作。这是另一个演示如何执行此操作的答案:Execute stored procedure from a Trigger after a time delay; create the jobs in the SQL Agent Job. https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job