So implementieren Sie einen Job, der die Java-API in JobScheduler verwendet

JobScheduler kann die Jobverarbeitung in verschiedenen Sprachen implementieren. Die meisten von ihnen sind in der Shell geschrieben und einfach zu implementieren, aber in der Shell ist es unpraktisch, ein paar aufwändige Dinge zu tun, z. B. die interne API von JobScheduler nicht aufrufen zu können. In diesem Artikel zeigen wir Ihnen, wie Sie es in Java implementieren.

Implementierung der Java-Klasse

Wie nachstehend Es erbt die Job_impl-Klasse im sos.spooler-Paket und implementiert die Java-Klasse.

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;
    }
}

In der Dokumentation finden Sie verfügbare Paketklassen. http://www.sos-berlin.com/doc/doxygen-docs/SOSJobSchedulerModel/html/index.html

JAR-Datei kompilieren und erstellen

Kompilieren Sie es nach dem Erstellen wie folgt.

sample/test/SimpleJobApiExample.java Gegen

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

Erstellen Sie 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/*

JAR-Datei erstellen

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

Platzieren Sie die JAR-Datei im Klassenpfad

Platzieren Sie die oben erstellte JAR-Datei in einem Klassenpfad, den JobScheduler erkennen kann.

Der Klassenpfad, den JobScheduler Master als Leseziel erkennt, befindet sich in der in factory.ini beschriebenen Kategorie [java]. Die folgenden Einstellungen.

[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

Wenn Sie es an einem anderen Ort als dem oben genannten Standard platzieren möchten, müssen Sie die obige Einstellung ändern. Wenn Sie es nicht ändern müssen, sollten Sie es unten platzieren.

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

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

Wenn mehrere JobScheduler-Master geclustert sind, legen Sie sie auf allen Master-Servern im Klassenpfadordner ab.

Implementierung der Jobdefinition

Implementieren Sie den Job wie folgt, wobei die JAR-Datei wie oben beschrieben platziert wird.

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

Mit den obigen Einstellungen wird die sample.test.SimpleJobApiExample-Klasse aufgerufen. Prozesse wie spooler_process (), die in der Klasse implementiert sind, werden automatisch ausgeführt. Wenn Sie es an einer anderen Stelle als dem Standardklassenpfad von JobScheduler Master platzieren möchten, fügen Sie die Einstellung java_class_path wie folgt hinzu.

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

Der obige java_class_path wird jedoch zur class_path-Einstellung des vorhandenen JobScheduler-Masters hinzugefügt, um den zu durchsuchenden Ordner anzugeben Wenn der gleichnamige in den Klassenpfad von JobScheduler Master gestellt wird, wird er mit Priorität gelesen. Seien Sie also vorsichtig.

Recommended Posts

So implementieren Sie einen Job, der die Java-API in JobScheduler verwendet
So implementieren Sie die Datumsberechnung in Java
So implementieren Sie den Kalman-Filter mit Java
So erzwingen Sie Codierungskonventionen in Java
So zeigen Sie eine Webseite in Java an
Eine Bat-Datei, die Java in Windows verwendet
So implementieren Sie eine ähnliche Funktion in Rails
So implementieren Sie optimistisches Sperren in der REST-API
So testen Sie eine private Methode und verspotten sie teilweise in Java
[Java] Implementieren Sie eine Funktion, die eine im Builder-Muster implementierte Klasse verwendet
So implementieren Sie eine nette Funktion in Ajax mit Rails
So erstellen Sie einen Daten-URI (base64) in Java
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
So konvertieren Sie eine Datei in ein Byte-Array in Java
Zusammenfassung der Implementierung von Standardargumenten in Java
[Java] So implementieren Sie Multithreading
Speichern von Zeichenfolgen von ArrayList zu Zeichenfolge in Java (Personal)
Aufrufen und Verwenden der API in Java (Spring Boot)
So entwickeln und registrieren Sie eine Sota-App in Java
So simulieren Sie das Hochladen von Post-Object-Formularen in OSS in Java
3 Implementieren Sie einen einfachen Interpreter in Java
So erstellen Sie einen Java-Container
Wie man JAVA in 7 Tagen lernt
Wie verwende ich Klassen in Java?
So benennen Sie Variablen in Java
Versuchen Sie, Yuma in Java zu implementieren
So erstellen Sie ein Java-Array
So verketten Sie Zeichenfolgen mit Java
Wie man Arrays mit Java stapelweise initialisiert, wusste ich als Anfänger nicht
So erstellen Sie ein neues Gradle + Java + Jar-Projekt in Intellij 2016.03
So bedienen Sie automatisch einen in Java unter Windows erstellten Bildschirm
So erstellen Sie eine Java-Kalenderzusammenfassung
So implementieren Sie Suchfunktionen in Rails
Mehrsprachige Unterstützung für Java Verwendung des Gebietsschemas
Implementieren Sie API Gateway Lambda Authorizer in Java Lambda
Versuchen Sie, n-ary Addition in Java zu implementieren
So fügen Sie ein Video in Rails ein
So führen Sie eine Basiskonvertierung in Java durch
[Einführung in Java] So schreiben Sie ein Java-Programm
Wie erstelle ich einen Discord Bot (Java)
So erstellen Sie ein Schlüsselpaar von ecdsa in einem Format, das von Java gelesen werden kann
Einbetten von Janus Graph in Java
So erhalten Sie das Datum mit Java
Implementieren Sie so etwas wie einen Stack in Java
So implementieren Sie Ranking-Funktionen in Rails
So implementieren Sie die asynchrone Verarbeitung in Outsystems
So veröffentlichen Sie eine Bibliothek in jCenter
So implementieren Sie eine Diashow mit Slick in Rails (einzeln und mehrfach nacheinander)
[Persönliches Memo] Interaktion mit dem Zufallszahlengenerator in Java
So übergeben Sie einen Proxy, wenn Sie REST mit SSL in Java auslösen
So ermitteln Sie den absoluten Pfad eines in Java ausgeführten Verzeichnisses
[Java] [Für Anfänger] So fügen Sie Elemente direkt in ein zweidimensionales Array ein
Versuchen Sie, ein Bulletin Board in Java zu erstellen
So erstellen Sie eine Klasse, die Klasseninformationen erbt
So erhalten Sie eine Klasse von Element in Java
Ich wollte (a == 1 && a == 2 && a == 3) in Java wahr machen