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 }