Comment implémenter un travail qui utilise l'API Java dans JobScheduler

JobScheduler peut implémenter le traitement des travaux dans différentes langues. La plupart d'entre eux sont écrits en shell et implémentés facilement, mais en shell, il n'est pas pratique de faire des choses un peu élaborées comme ne pas pouvoir appeler l'API interne de JobScheduler. Dans cet article, nous allons vous montrer comment l'implémenter en Java.

Implémentation de classe Java

Comme ci-dessous Il hérite de la classe Job_impl du package sos.spooler et implémente la classe Java.

SimpleJobApiExample.java


package sample.test;
import sos.spooler.*;
 
public class SimpleJobApiExample extends Job_impl {
     
    @Override
    public boolean spooler_process() throws Exception {
        spooler_log.info("Hello world!");
        return false;
    }
}

Consultez la documentation pour les classes de packages disponibles. http://www.sos-berlin.com/doc/doxygen-docs/SOSJobSchedulerModel/html/index.html

Compiler et créer un fichier jar

Après l'avoir créé, compilez-le comme suit.

sample/test/SimpleJobApiExample.java Contre

$ cd sample/test
$ javac -classpath .:/opt/sos-berlin.com/jobscheduler/scheduler/lib/sos/com.sos-berlin.jobscheduler.engine-1.11.3.jar SimpleJobApiExample.java

Créer Manifest.txt

$ cd ../../
$ vim Manifest.txt
Manifest-Vwersion: 1.0
Main-Class: sample.test.SimpleJobApiExample
Class-Path: /opt/sos-berlin.com/jobscheduler/scheduler/lib/sos/*

Créer un fichier jar

$ jar cvfm SimpleJobApiExample.jar Manifest.txt sample/test/*.class

Placer le fichier jar dans le chemin de classe

Placez le fichier jar créé ci-dessus dans un chemin de classe que JobScheduler peut reconnaître.

Le chemin de classe que JobScheduler Master reconnaît comme destination de lecture se trouve dans la catégorie [java] décrite dans factory.ini. Les paramètres suivants.

[java]
class_path              = ${SCHEDULER_HOME}/lib/pgsql/*.jar:${SCHEDULER_HOME}/lib/patches/*.jar:${SCHEDULER_HOME}/lib/user_lib/*.jar:${SCHEDULER_HOME}/lib/sos/*.jar:${SCHEDULER_HOME}/lib/3rd-party/*.jar:${SCHEDULER_HOME}/lib/jdbc/*.jar:${SCHEDULER_DATA}/config:${SCHEDULER_HOME}/lib/log/log4j/*.jar

Si vous souhaitez le placer dans un endroit différent de celui par défaut ci-dessus, vous devez modifier le paramètre ci-dessus. Si vous n'avez pas besoin de le modifier, il convient de le placer ci-dessous.

Sous /opt/sos-berlin.com/jobscheduler/scheduler/lib/user_lib/

$ cp SimpleJobApiExample.jar /opt/sos-berlin.com/jobscheduler/scheduler/lib/user_lib

Si plusieurs maîtres JobScheduler sont mis en cluster, placez-les dans le dossier du chemin de classe sur tous les serveurs maîtres.

Implémentation de la définition de poste

Implémentez le travail comme suit avec le fichier jar placé comme décrit ci-dessus.

<job title="Simple Java API Job" order="no">
<script language="Java" java_class_path="/opt/sos-berlin.com/jobscheduler/scheduler/lib/user_lib" java_class="sample.test.SimpleJobApiExample"/>
<run_time/>
</job>

Avec les paramètres ci-dessus, la classe sample.test.SimpleJobApiExample sera appelée. Les processus tels que spooler_process () implémentés dans la classe sont automatiquement exécutés. Si vous souhaitez le placer dans un emplacement différent du chemin de classe par défaut de JobScheduler Master, ajoutez le paramètre java_class_path comme suit.

<job title="Simple Java API Job" order="no">
<script language="Java" java_class_path="/hoge/lib/*.jar" java_class="sample.test.SimpleJobApiExample"/>
<run_time/>
</job>

Cependant, le java_class_path ci-dessus sera ajouté au paramètre class_path du JobScheduler Master existant pour spécifier le dossier à rechercher. Si celui qui porte le même nom est placé dans le class_path de JobScheduler Master, il sera lu en priorité, donc soyez prudent.

Recommended Posts

Comment implémenter un travail qui utilise l'API Java dans JobScheduler
Comment implémenter le calcul de la date en Java
Comment implémenter le filtre de Kalman par Java
Comment appliquer les conventions de codage en Java
Comment afficher une page Web en Java
Un fichier bat qui utilise Java dans Windows
Comment implémenter une fonctionnalité similaire dans Rails
Comment implémenter le verrouillage optimiste dans l'API REST
Comment tester une méthode privée et la simuler partiellement en Java
[Java] Implémenter une fonction qui utilise une classe implémentée dans le modèle Builder
Comment implémenter une fonctionnalité intéressante dans Ajax avec Rails
Comment créer un URI de données (base64) en Java
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Comment convertir un fichier en tableau d'octets en Java
Résumé de la mise en œuvre des arguments par défaut en Java
[Java] Comment implémenter le multithreading
Comment stocker des chaînes de ArrayList à String en Java (personnel)
Comment appeler et utiliser l'API en Java (Spring Boot)
Comment développer et enregistrer une application Sota en Java
Comment simuler le téléchargement de formulaires post-objet vers OSS en Java
3 Implémentez un interpréteur simple en Java
Comment créer un conteneur Java
Comment apprendre JAVA en 7 jours
Comment utiliser les classes en Java?
Comment nommer des variables en Java
Essayez d'implémenter Yuma en Java
Comment créer un tableau Java
Comment concaténer des chaînes avec Java
Comment initialiser par lots des tableaux avec Java que je ne savais pas quand j'étais débutant
Comment créer un nouveau projet Gradle + Java + Jar dans Intellij 2016.03
Comment faire fonctionner automatiquement un écran créé en Java sous Windows
Comment créer un résumé de calendrier Java
Comment implémenter la fonctionnalité de recherche dans Rails
Prise en charge multilingue de Java Comment utiliser les paramètres régionaux
Implémenter l'autorisation API Gateway Lambda dans Java Lambda
Essayez d'implémenter l'ajout n-aire en Java
Comment insérer une vidéo dans Rails
Comment faire une conversion de base en Java
[Introduction à Java] Comment écrire un programme Java
Comment créer un robot Discord (Java)
Comment créer une paire de clés d'ecdsa dans un format lisible par Java
Comment intégrer Janus Graph dans Java
Comment obtenir la date avec Java
Implémenter quelque chose comme une pile en Java
Comment implémenter la fonctionnalité de classement dans Rails
Comment implémenter le traitement asynchrone dans Outsystems
Comment publier une bibliothèque dans jCenter
Comment mettre en œuvre un diaporama en utilisant Slick in Rails (un par un et plusieurs par un)
[Mémo personnel] Comment interagir avec le générateur de nombres aléatoires en Java
Comment passer un proxy lors du lancement de REST avec SSL en Java
Comment obtenir le chemin absolu d'un répertoire s'exécutant en Java
[Java] [Pour les débutants] Comment insérer des éléments directement dans un tableau à deux dimensions
Essayez de créer un babillard en Java
Comment créer une classe qui hérite des informations de classe
Comment obtenir une classe depuis Element en Java
Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java