当 max-jobs-per-context 值超过时,作业提交失败并出现一般 503 错误
Job submission fails with generic 503 error when max-jobs-per-context value exceeds
我在配置文件中设置了 context-per-jvm = true 和 max-jobs-per-context = 4。
我使用以下 curl 命令预先创建了上下文:
curl -d "" 'http://jobserver:8090/contexts/test-context'
我正在使用以下 curl 命令提交作业:
curl -d "" 'http://jobserver:8090/jobs?appName=test&classPath=com.xyz.Test&context=test-context'
使用上述命令提交 4 个作业后,第 5 个作业的提交给出以下响应:
{
"status": "NO SLOTS AVAILABLE",
"result": "Too many running jobs (4) for job context 'test-context'"
}
这是一个体面且有用的回复。
但是,当我使用 Jersey API 从我的 Java 程序提交作业时,第 5 个作业的作业提交失败并出现通用 503 异常,没有任何特定的错误消息。
这是代码片段:
public static void main(String[] args) {
WebTarget resource = client.target("http://jobserver:8090/jobs?appName=test&classPath=com.xyz.Test&context=test-context");
Response response = resource.request().post(Entity.json(""), Response.class);
System.out.println("Response:" + response);
}
输出:
Response:InboundJaxrsResponse{context=ClientResponse{method=POST, uri=http://jobserver:8090/jobs?appName=test&classPath=com.xyz.Test&context=test-context, status=503, reason=Service Unavailable}}
这种不一致的原因是什么?我的 Jersey API 电话是不是遗漏了什么?
我能够使用以下方法获得特定的 JSON 响应:
response.readEntity(JSONObject.class)
或 response.readEntity(String.class)
我在配置文件中设置了 context-per-jvm = true 和 max-jobs-per-context = 4。
我使用以下 curl 命令预先创建了上下文:
curl -d "" 'http://jobserver:8090/contexts/test-context'
我正在使用以下 curl 命令提交作业:
curl -d "" 'http://jobserver:8090/jobs?appName=test&classPath=com.xyz.Test&context=test-context'
使用上述命令提交 4 个作业后,第 5 个作业的提交给出以下响应:
{
"status": "NO SLOTS AVAILABLE",
"result": "Too many running jobs (4) for job context 'test-context'"
}
这是一个体面且有用的回复。
但是,当我使用 Jersey API 从我的 Java 程序提交作业时,第 5 个作业的作业提交失败并出现通用 503 异常,没有任何特定的错误消息。
这是代码片段:
public static void main(String[] args) {
WebTarget resource = client.target("http://jobserver:8090/jobs?appName=test&classPath=com.xyz.Test&context=test-context");
Response response = resource.request().post(Entity.json(""), Response.class);
System.out.println("Response:" + response);
}
输出:
Response:InboundJaxrsResponse{context=ClientResponse{method=POST, uri=http://jobserver:8090/jobs?appName=test&classPath=com.xyz.Test&context=test-context, status=503, reason=Service Unavailable}}
这种不一致的原因是什么?我的 Jersey API 电话是不是遗漏了什么?
我能够使用以下方法获得特定的 JSON 响应:
response.readEntity(JSONObject.class)
或 response.readEntity(String.class)