001 /**
002 * Copyright (c) 2010 Yahoo! Inc. All rights reserved.
003 * Licensed under the Apache License, Version 2.0 (the "License");
004 * you may not use this file except in compliance with the License.
005 * You may obtain a copy of the License at
006 *
007 * http://www.apache.org/licenses/LICENSE-2.0
008 *
009 * Unless required by applicable law or agreed to in writing, software
010 * distributed under the License is distributed on an "AS IS" BASIS,
011 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012 * See the License for the specific language governing permissions and
013 * limitations under the License. See accompanying LICENSE file.
014 */
015 package org.apache.oozie.util;
016
017 import java.util.concurrent.Callable;
018
019 /**
020 * Extends Callable adding the concept of priority. <p/> The priority is useful when queuing callables for later
021 * execution via the {@link org.apache.oozie.service.CallableQueueService}. <p/> A higher number means a higher
022 * priority. <p/>
023 */
024 public interface XCallable<T> extends Callable<T> {
025
026 /**
027 * Return the callable name.
028 *
029 * @return the callable name.
030 */
031 public String getName();
032
033 /**
034 * Return the priority of the callable.
035 *
036 * @return the callable priority.
037 */
038 public int getPriority();
039
040 /**
041 * Return the callable type. <p/> The callable type is used for concurrency throttling in the {@link
042 * org.apache.oozie.service.CallableQueueService}.
043 *
044 * @return the callable type.
045 */
046 public String getType();
047
048 /**
049 * Returns the createdTime of the callable in milliseconds
050 *
051 * @return the callable createdTime
052 */
053 public long getCreatedTime();
054
055 }