我有一个经典的 ASP 页面,它调用了一个外部 web 服务。这是实际过程的工作方式:
'[Part0 : Call the external webservice]
wsResponse = setConfirmation(...)
' [PART1: external webservice is responding]
if not wsResponse is Nothing then
'....Process the response from the webservice according to wsResponse
code =wsResponse.getCode
if code = 'C' then
'We confirm the transaction and call a storedprocedure in SqlServer
else
'if code is different from C, we assume, the transaction status is 'not confirmed' or 'cancelled'
'[PART2: no answer from external webservice]
Else
'so wsReponse is nothing..We don't get any answer from the external webservice
'transaction is not confirmed
'the transaction status is set to 'not confirmed' in database
所以我想做的是在 PART2 中(当没有从外部 web 服务得到答案时),等待 30 秒,然后在数据库中发送“未确认”状态。所以我想再次做 PART0 即:再次调用外部 Web 服务至少 10 次,看看它是否响应。一种递归过程。所以我在想两种方法:
在 PART2 中,让 ASP 休眠 30 秒,然后再次进入 PART0(调用 web 服务),如果仍然没有响应,则写入 DB,事务未确认,但如果有响应,则执行 PART1。
在 PART2 中,调用至少重复 PART0 10 次,如果 10 次尝试后没有响应,则写入 DB,事务未确认。
所以我的问题是:有没有更好的方法来做到这一点,或者哪个或 1 或 2 会更好?而且,对于 1,我们如何让 ASP 像在 dotnet 或 PHP 中一样进入睡眠状态?
感谢您的回答。
问候