2

我应该测试一个 Web 服务,它将在服务器端创建一个帐户。

但是,由于架构原因,SOAP 调用暂时不会返回消息。所以我必须发出另一个cURL命令来测试帐户是否已成功创建。

问题是:帐户创建时间大约需要 50 秒才能完成。如果我想自动化该过程,发出cURL命令的最佳做法是什么?我应该总是等待 50 秒或更长时间吗?或者我应该连续发送cURL直到帐户被创建/达到最大等待时间(比如 90 秒)?

欢迎任何意见。

提前致谢。

4

1 回答 1

1

如果您不能(或不想)更改 Web 服务,我会选择两者的组合。

我应该总是等待 50 秒或更长时间吗?或者我应该连续发送 cURL 直到帐户被创建/达到最大等待时间(比如 90 秒)?

我会等待startingTime几秒钟(比如说50),然后从那里每隔retryTime几秒钟打一个电话(比如说10),直到maxTries打电话(比如说4)。那是:

00:00 - call the createAccount
00:50 - issue first cURL command to check if account was created
if not created
01:00 - issue another cURL command to check if account was created
if not created
01:10 - issue another cURL command to check if account was created
if not created
01:20 - issue another cURL command to check if account was created
if not created: consider the creation has failed

顺便说一句,为什么您需要等待 50 秒?

创建操作这么慢还是您使用的是异步创建系统?

如果您使用的是异步创建系统并且确实可以更改 Web 服务,您可以:

  • 使用JAX-WS 2.0 的异步 Web 服务调用功能
  • 或者...让createAccount服务返回一个票号(一个整数),然后创建一个checkTicket方法,这将允许您检查您的创建调用是否已被处理。
于 2013-04-13T05:19:36.503 回答