- for (var job : worker.getJobs()) {
- executor.submit(() -> submitJob(worker, job));
- executor.schedule(() -> pollJob(worker, job), 1, TimeUnit.SECONDS);
- }
- }
-
- private void submitJob(WebServiceWorkerI worker, WSJob job) {
- try {
- job.setJobID(worker.startJob(job).getJobID());
- job.resetAllowedExceptions();
- executor.schedule(() -> pollJob(worker, job), 1, TimeUnit.SECONDS);
- }
- catch (IOException e) {
- Cache.log.error("Exception occurred during job submission", e);
- if (!job.deductAllowedExceptions()) {
- job.setState(WSJobState.SERVER_ERROR);
+ executor.submit(() -> {
+ try {
+ worker.startJobs();
+ wsThreadSupport.submitted(worker);
+ }
+ catch (Exception e) {
+ Cache.log.error("Failed to submit web service jobs.", e);
+ wsThreadSupport.submissionFailed(worker, e);
+ return;
+ }
+ executor.schedule(() -> pollJobs(worker), 1, TimeUnit.SECONDS);