[英]Constraint JAX-WS CXF web service request method invocation to one request per client IP
我有一個基於CXF的Web服務,使用單向方法說:Service.report()
當正在處理來自客戶端的report()時,我想從同一客戶端IP生成另一個傳入報告(),等待第一個請求被處理。 從客戶端看,report()是一個原子操作,應該按順序處理對report()的連續調用。
我怎樣才能最好地實現這種鎖定機制? 我是否需要實現每個客戶端隊列,還是有一種簡單的方法來實現這一目標?
你不需要一個完整的隊列。 一個簡單的對象同步應該工作
static ConcurrentMap syncMap = new ConcurrentHashMap();
public void report()
{
String clientIp = ...
syncMap.putIfAbsent(clientIp, new Object()); // just new Object is good enough to sync on
synchronized(syncMap.get(clientIp))
{
//do synchronized stuff.
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.