Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
heroku路由器超时/中断导致响应丢失_Heroku_Jax Rs_Rabbitmq_Router_Amqp - Fatal编程技术网

heroku路由器超时/中断导致响应丢失

heroku路由器超时/中断导致响应丢失,heroku,jax-rs,rabbitmq,router,amqp,Heroku,Jax Rs,Rabbitmq,Router,Amqp,我的heroku web服务的响应丢失,这似乎是一种竞争条件 heroku路由器将请求传递给web服务,web服务处理请求并返回响应,但在此期间,heroku路由器由于客户端中断或后端超时而使请求失败 问题在于,web服务请求处理更改了后端的状态,并希望将状态更改发送到响应主体中的客户端。响应永远不会到达客户端,因此状态更改将永远丢失 在我的例子中,状态变化恰好是从RabbitMQ消息队列中传递和删除消息。web服务请求处理程序从RabbitMQ队列中弹出请求,但它无法到达客户机,从此再也听不到

我的heroku web服务的响应丢失,这似乎是一种竞争条件

heroku路由器将请求传递给web服务,web服务处理请求并返回响应,但在此期间,heroku路由器由于客户端中断或后端超时而使请求失败

问题在于,web服务请求处理更改了后端的状态,并希望将状态更改发送到响应主体中的客户端。响应永远不会到达客户端,因此状态更改将永远丢失

在我的例子中,状态变化恰好是从RabbitMQ消息队列中传递和删除消息。web服务请求处理程序从RabbitMQ队列中弹出请求,但它无法到达客户机,从此再也听不到该请求

我可以实现我自己的基于客户端的消息确认系统来缓解这种情况。然而,我怀疑你们中的一些人可能有一个更好的解决方案,来处理如何确保客户得到响应的问题。我是否可以在web服务上使用任何回调来确定响应是否丢失?FWIW my web服务是一个运行嵌入式Jetty的JAX-RS服务

谢谢