我们希望将客户端与服务器断开连接.
所以我们向会话发送了一些消息,其中基本上包括一些命令,比如“关闭你自己”l
所以一般来说我做这样的事情:
for (Session session : sessions) {
closeSession(session);
while(!verifyClosed(session)){
closeSession(session);
retries++;
if(retries==10){
retries = 0;
break;
}
};
}
现在我想在做一些sigterm kill方法之前为每个会话提供几秒钟(比如说5).
那么首选方式是什么:
>为每个会话关闭程序执行最多5秒延迟的循环.
要么
>为每个会话启动执行此过程的线程,以便同时关闭会话.
for (Session session : sessions) {
startClosingThread(session);
}
更新:
我注意到有些用户对“Session”这个词有很多误解,问题不在于SessionHandling.如果我发送关闭消息或断开套接字无关紧要.这不是问题.
您可以用UserThread替换Session一词.
我需要一些建议的问题是:
关闭“UserThread”将花费一些时间,所以现在等待每个线程关闭并转到下一个线程,或者为每个UserThread启动它自己的可复制的Closing Thread以同时处理所有线程.