package uws.job; /* * This file is part of UWSLibrary. * * UWSLibrary is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * UWSLibrary is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with UWSLibrary. If not, see <http://www.gnu.org/licenses/>. * * Copyright 2012 - UDS/Centre de DonnĂ©es astronomiques de Strasbourg (CDS) */ /** * <p>A job is treated as a state machine where the Execution Phase is the job state. The phases are:</p> * <ul> * <li>{@link #PENDING}: the job is accepted by the service but not yet committed for * execution by the client. In this state, the job quote can be read * and evaluated. This is the state into which a job enters when it * is first created.</li> * * <li>{@link #QUEUED}: the job is committed for execution by the client but the service * has not yet assigned it to a processor. No Results are produced in * this phase.</li> * * <li>{@link #EXECUTING}: the job has been assigned to a processor. Results may be produced * at any time during this phase.</li> * * <li>{@link #COMPLETED}: the execution of the job is over. The Results may be collected.</li> * * <li>{@link #ERROR}: the job failed to complete. No further work will be done nor Results * produced. Results may be unavailable or available but invalid; either * way the Results should not be trusted.</li> * * <li>{@link #ABORTED}: the job has been manually aborted by the user, or the system has * aborted the job due to lack of or overuse of resources.</li> * * <li>{@link #UNKNOWN}: the job is in an unknown state.</li> * * <li>{@link #HELD}: The job is HELD pending execution and will not automatically be * executed (cf pending).</li> * * <li>{@link #SUSPENDED}: The job has been suspended by the system during execution. This might * be because of temporary lack of resource. The UWS will automatically * resume the job into the EXECUTING phase without any intervention * when resource becomes available.</li> * </ul> * * @see UWSJob * * @author Grégory Mantelet (CDS) * @version 02/2011 */ public enum ExecutionPhase{ PENDING, QUEUED, EXECUTING, COMPLETED, ERROR, ABORTED, UNKNOWN, HELD, SUSPENDED; public static final String getStr(ExecutionPhase ph){ return (ph == null) ? ExecutionPhase.UNKNOWN.name() : ph.name(); } public static final ExecutionPhase getPhase(String phStr){ try{ return valueOf(phStr); }catch(Exception ex){ return ExecutionPhase.UNKNOWN; } } }