我想在收到系统的 SIGTERM
信号时,退出循环,并且优雅地停机。如何实现?
伪代码如下:
@Service
@RequiredArgsConstructor
public class MessageAsyncService {
@Async
public void run(Client client) {
while (no SIGTERM) {
Message message = getNewMessage(client);
if (message = null)
break;
sendMessage(client, message);
}
// 其他处理任务
}
public void sendMessage(Client client, Message message) {
// 更新 DB
// 发送消息给客户端
// 通知其他服务
// 。。。。
}
}
软件版本: Java 17, Spring Boot v3.3.1, Spring v6.1.10