package com.datascience.datastoring.storages; import com.datascience.datastoring.jobs.IJobStorage; import org.apache.log4j.Logger; import com.datascience.datastoring.jobs.Job; import com.datascience.executor.SynchronizedCommand; import com.datascience.datastoring.jobs.JobsLocksManager; /** * * @author konrad */ public class JobStorageCommands{ static Logger logger = Logger.getLogger(JobStorageCommands.class); public static class Adder extends SynchronizedCommand { protected IJobStorage jobStorage; protected Job job; public Adder(IJobStorage jobStorage, JobsLocksManager jm, Job job) { super(jm.getLock(job.getId()), false); this.jobStorage = jobStorage; this.job = job; } @Override public void run() { logger.debug("EX_JS: adder " + job.getId()); try { jobStorage.add(job); } catch (Exception e) { logger.fatal("When adding job to storage", e); } } } public static class Remover extends SynchronizedCommand { protected IJobStorage jobStorage; protected Job job; public Remover(IJobStorage jobStorage, JobsLocksManager jm, Job job) { super(jm.getLock(job.getId()), true); this.jobStorage = jobStorage; this.job = job; } @Override public void run() { logger.debug("EX_JS: remover " + job.getId()); try { jobStorage.remove(job); } catch (Exception e) { logger.fatal("When removing job to storage", e); } } } }