All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.kie.api.executor.ExecutorService Maven / Gradle / Ivy

Go to download

The Kogito public API which is backwards compatible between releases.

There is a newer version: 10.0.0
Show newest version
/*
 * Copyright 2013 Red Hat, Inc. and/or its affiliates.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.kie.api.executor;

import java.io.InputStream;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.concurrent.TimeUnit;

import org.kie.api.runtime.manager.RuntimeManagerFactory.Factory;
import org.kie.api.runtime.query.QueryContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


/**
 * Top level facade that aggregates operations defined in:
 * 
    *
  • Executor
  • *
  • ExecutorQueryService
  • *
  • ExecutorAdminService
  • *
* @see Executor * @see ExecutorQueryService * @see ExecutorAdminService */ public interface ExecutorService { /** * Allow to use custom identifiers for the executor instance where default is to rely on local id of clustering of kie * if present, otherwise use simple 'default-executor'. Alternatively an jbpm-executor.id file can be dropped on root * of the classpath to provide application scoped id instead of JVM scoped (system property) */ public static final String EXECUTOR_ID = IdProvider.get(); List getQueuedRequests(QueryContext queryContext); List getCompletedRequests(QueryContext queryContext); List getInErrorRequests(QueryContext queryContext); List getCancelledRequests(QueryContext queryContext); List getAllErrors(QueryContext queryContext); List getAllRequests(QueryContext queryContext); List getRequestsByStatus(List statuses, QueryContext queryContext); List getRequestsByBusinessKey(String businessKey, QueryContext queryContext); List getRequestsByBusinessKey(String businessKey, List statuses, QueryContext queryContext); List getRequestsByCommand(String command, QueryContext queryContext); List getRequestsByCommand(String command, List statuses, QueryContext queryContext); List getRequestsByDeployment(String deploymentId, List statuses, QueryContext queryContext); List getRequestsByProcessInstance(Long processInstanceId, List statuses, QueryContext queryContext); int clearAllRequests(); int clearAllErrors(); Long scheduleRequest(String commandName, CommandContext ctx); void cancelRequest(Long requestId); void updateRequestData(Long requestId, Map data); void init(); void destroy(); boolean isActive(); int getInterval(); void setInterval(int waitTime); int getRetries(); void setRetries(int defaultNroOfRetries); int getThreadPoolSize(); void setThreadPoolSize(int nroOfThreads); TimeUnit getTimeunit(); void setTimeunit(TimeUnit timeunit); List getPendingRequests(QueryContext queryContext); List getPendingRequestById(Long id); Long scheduleRequest(String commandId, Date date, CommandContext ctx); List getRunningRequests(QueryContext queryContext); List getFutureQueuedRequests(QueryContext queryContext); RequestInfo getRequestById(Long requestId); List getErrorsByRequestId(Long requestId); class IdProvider { private static boolean initialized = false; private static String EXECUTOR_ID; private static Logger logger = LoggerFactory.getLogger(Factory.class); public static String get() { if (!initialized) { EXECUTOR_ID = create(); } return EXECUTOR_ID; } private static synchronized String create() { initialized = true; String idSystemProperty = System.getProperty("org.kie.executor.id", "default-executor"); try { InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("/jbpm-executor.properties"); if (is != null) { Properties executorProps = new Properties(); executorProps.load(is); return idSystemProperty+ "-" + executorProps.getProperty("executor.id"); } } catch (Exception e) { logger.warn("Unable to find executor id due to '{}', using default...", e.getMessage()); } return idSystemProperty; } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy