0

私の RESTful Spring ベースの Web サービスは、Gold、Silver、Bronze などの差別化されたユーザー リクエストを受け取ります。Gold リクエストは最高の優先度で、Bronze は最低の優先度です。そこで、単純なタイプの差別化されたサービス プロビジョニングを実装したいと考えています。実装するのに最も簡単な(ほとんど嘲笑された)戦略はどれですか?

優先度の高いものを提供している場合、優先度の低いものをしばらくブロックすることを考えています。このようなもの

@Controller
public class MyController {
    @Autowired
    private MyBusinessLogic businessLogic;

    private static final int GOLD=0;
    private static final int SILVER=1;
    private static final int BRONZE=2;
    private volatile int [] count = new int[3];

    @RequestMapping
    public String service(@RequestBody MyRequest request) {
        count[request.getType()]++;
        for(int i=0; i<request.getType(); i++)
            if(count[i]>0)
                Thread.sleep(500);
        String result = businessLogic.service(request);
        count[request.getType()]--;
        return result;
    }
}

それは合理的ですか?それとも、望ましくない副作用がありますか? より良い戦略をお勧めしますか?

4

1 に答える 1