Spring批处理作业成功完成,代码如下:
@RestController
@RequestMapping(value = "api/jobs")
public class JobLaunchingController {
@Autowired
private JobOperator jobOperator;
@RequestMapping(value = "/pay/{paymentPeriod}", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.ACCEPTED)
public void launchPaymentJob(@PathVariable Integer paymentPeriod) throws Exception {
this.jobOperator.start("paymentJob", String.format("paymentPeriod=%s,time=" + System.currentTimeMillis(), paymentPeriod));
}
}
我正在使用JavaFX客户端,其中端点用于发送要启动的作业的请求。基本上,在泽西客户端的帮助下,http请求就像这样发送
Client client = ClientBuilder.newBuilder().build();
WebTarget webTarget = client.target(getBaseUri()).path(path);
Response response = webTarget.request().get(Response.class);
问题是我无法让客户知道作业何时完成。如何在作业完成后通过服务器通知客户端
非常感谢任何帮助。
答案 0 :(得分:0)
这更像是一个建筑问题,而不是编码。你可以通过多种方式解决这个问题,我建议你三个以下
答案 1 :(得分:0)
如何在作业完成后通过服务器通知客户端?
尝试使用Websokets将数据从服务器发送到客户端。 Here是一个非常好的指南,如何使用Spring。
在客户端,我相信您可以使用此方法:https://github.com/nickebbutt/stomp-websockets-java-client