对于长期运行的异步操作,是否有(广泛实施的)WS- *标准?

时间:2016-07-03 11:42:25

标签: web-services wcf soap jax-ws

我正在实现一个Web服务,客户端可以在其中提交可能长时间运行的任务,之后他们会收到异步完成令牌(在我的例子中为GUID)。令牌可用于轮询操作的状态,可能检索计算结果或计算期间发生的故障。此外,可以随时取消操作。目前,客户端需要在完成后取消操作以释放存储的结果,但是,我希望还需要某种形式的垃圾收集结果。

此设置对于客户端来说非常重要:它需要存储GUID令牌,定期轮询,记住在不再需要时取消操作,处理异步故障等。如果需要身份验证(WS) -Security,WS-Trust),情况将更加复杂,例如,必须禁止访问由另一个用户启动的操作的状态。

是否存在广泛可用,可互操作的WS- *标准用于此类异步操作?我希望能够至少从WCF和JAX-WS客户端调用服务器,并且可能使用异步作业与其他WS- *标准一起使用。滚动我自己的投票解决方案并不是什么大问题,但是,我不想重新发明轮子。

1 个答案:

答案 0 :(得分:1)

不太确定WS- *标准。最近,我们的团队使用Hangfire来实现与您类似的功能。

由于您可以使用代码轻松集成Hangfire,您可以将作业提交作为接口公开,并实现一些逻辑以生成GUID并将任务排队到Hangfire服务器,然后在业务逻辑中实现您的需求。