gpt4 book ai didi

java - 调用 Jersey 服务 (PUT) 时发送电子邮件通知的设计问题

转载 作者:行者123 更新时间:2023-11-30 09:47:08 26 4
gpt4 key购买 nike

我在这里遇到设计问题。我有一个用 jersey 实现的 RESTful Web 服务.我也在用 spring mail 发邮件。

我的规范需要通知特定的用户组(大约 15-20 人)已发出 PUT 请求并通知他们资源的修改。此外,我需要向发出请求的客户端发送一个 JSON 数组作为响应。

现在我所做的是在修改我处理 PUT 服务的方法之后,我向用户发送电子邮件,然后返回 JSON 状态。

但是为什么客户端要等待邮件通知完成呢?如果我的用户列表很长,客户端等待很长时间才能得到响应怎么办?这不是他的头痛。但我也需要在 PUT 方法中通知用户。如果我返回 JSON,我将失去通过请求响应周期发送通知的上下文。

有更好的方法吗?

为了有一个想法,我提供了我的代码的相关部分:

 //first notify users
notifyUsers(event,jsonEntity,NotificationType.TicketType.UPDATED);

//then return response
return new JSONObject()
.put("response_code:", Response.status(Status.OK).build())
.put("title", evento.getDescrizioneevento())
.put("status", getEventAsString(evento.getStatoevento()))
.put("solved", evento.getCausascatenante());

最佳答案

使“notifyUsers”异步。

排队请求,稍后处理。您可以在单例中使用一个简单的 BlockingQueue,并使用一个线程监听另一端,或者您可以设置一个更正式的排队系统,例如 JMS。您还可以将请求插入到数据库中,并在其中监听 Activity 。

或者您可以直接在此处启动一个简单的线程,并让它在您从请求返回时运行。这也可以。

各种不同优缺点的选择。

关于java - 调用 Jersey 服务 (PUT) 时发送电子邮件通知的设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6836304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com