我需要导入大量的产品Feed,这需要花费大量时间。 我尝试将importfeeds.aspx页面上的Server.ScriptTimeout设置为一小时,并按顺序和异步执行我的任务。
但我更想要的是几个较小的应用程序,我可以计划运行它们来执行单个任务。另外,因为当1个任务失败时,我仍然希望执行其他任务,因为各个任务不相互依赖。
最好的方法是什么?
谢谢!
答案 0 :(得分:0)
使用 global.asax 。
在 global.asax 中,应用程序启动时会调用方法 Application_Start 。
在 Application_Start 方法中运行一个线程,并在 Application_End 中终止该线程。
以下是示例代码:
Public Class job
Public Property StopThread As Boolean = False
Public Sub DoJob()
Do While Not StopThread
If Now.Minute = 0 Then
'Do Sync Work
End If
Threading.Thread.Sleep(1000 * 60)
Loop
End Sub
End Class
Public Class Global_asax
Inherits HttpApplication
Private j As job
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
j = New job
Dim JobThread As System.Threading.Thread
JobThread = New Threading.Thread(AddressOf j.DoJob)
JobThread.Start()
End Sub
Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
j.StopThread = True
End Sub
End Class