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