spring引导服务器等待pendig请求,然后接受next

yrdbyhpb  于 2021-07-12  发布在  Java
关注(0)|答案(0)|浏览(238)

我已经构建了一个web服务器,它为我提供了一个web页面的api。因为页面不容易刮取,所以我使用selenium进行了几次单击,然后读取数据。问题是selenium需要相对较长的时间(每个请求大约1秒),如果在这段时间内有一个新的请求进来,那么在旧的请求完成之前它就会被接受。在这种情况下,我有50/50的机会返回正确的值或其他请求的值。

[WebPageAPI] received new Restquest for 978383387777
[WebPageAPI] received new Restquest for 978359680709 
[WebPageAPI] returning 0.15 for 978383387777 <--
[WebPageAPI] returning 0.15 for 978359680709 <--
[WebPageAPI] received new Restquest for 978342662424
[WebPageAPI] returning 0.0 for 9783426624241

它应该是a-b-a-b,就像a-a-b-b一样
我的界面看起来像:

@GetMapping("/WebPage/{isbn}")
public WebPageProduct getPrice(@PathVariable String isbn) {

    System.out.println("[WebPageAPI] received new Restquest for " + isbn);
    WebPageProduct product = WebPageProductPipeline.pipe(productFetcher.fetchProduct(isbn));
    System.out.println("[WebPageAPI] returning " + product.getPrice() + " for " + isbn);

    return product;
}

是否可以强制服务器等待直到最后一个请求完成?或者有没有一种方法可以使用多线程并返回对正确请求的正确响应?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题