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.
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
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
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é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