Skip to content
This repository was archived by the owner on Dec 8, 2022. It is now read-only.
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,18 @@
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.ejb.EJB;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.enterprise.concurrent.ManagedExecutorService;
import javax.ws.rs.core.MediaType;

import org.apache.commons.io.FileUtils;

import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;

import lombok.extern.log4j.Log4j;
import mobi.chouette.common.Constant;
import mobi.chouette.common.ContenerChecker;
Expand All @@ -43,12 +48,7 @@
import mobi.chouette.persistence.hibernate.ChouetteIdentifierGenerator;
import mobi.chouette.scheduler.Scheduler;

import org.apache.commons.io.FileUtils;

import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;

@Stateless(name = JobServiceManager.BEAN_NAME)
@Singleton(name = JobServiceManager.BEAN_NAME)
@Startup
@Log4j
public class JobServiceManager {
Expand All @@ -64,24 +64,19 @@ public class JobServiceManager {
@EJB(beanName = ContenerChecker.NAME)
ContenerChecker checker;

@EJB
JobServiceManager jobServiceManager;

@EJB
Scheduler scheduler;

@Resource(lookup = "java:comp/DefaultManagedExecutorService")
ManagedExecutorService executor;

private static Set<Object> referentials = Collections.synchronizedSet(new HashSet<>());
private Set<Object> referentials = Collections.synchronizedSet(new HashSet<>());

private static int maxJobs = 5;

private static String lock = "lock";
private int maxJobs = 5;

private String rootDirectory;

private static Set<String> intializedContexts = new HashSet<>();
private Set<String> intializedContexts = new HashSet<>();

@PostConstruct
public synchronized void init() {
Expand Down Expand Up @@ -131,15 +126,13 @@ public JobService create(String referential, String action, String type, Map<Str
throws ServiceException {
// Valider les parametres
validateReferential(referential);
synchronized (lock) {
if (scheduler.getActivejobsCount() >= maxJobs) {
throw new RequestServiceException(RequestExceptionCode.TOO_MANY_ACTIVE_JOBS, "" + maxJobs
+ " active jobs");
}
JobService jobService = jobServiceManager.createJob(referential, action, type, inputStreamsByName);
scheduler.schedule(referential);
return jobService;
if (scheduler.getActivejobsCount() >= maxJobs) {
throw new RequestServiceException(RequestExceptionCode.TOO_MANY_ACTIVE_JOBS, "" + maxJobs
+ " active jobs");
}
JobService jobService = createJob(referential, action, type, inputStreamsByName);
scheduler.schedule(referential);
return jobService;
}

public List<Stat> getMontlyStats() throws ServiceException {
Expand Down