Ich möchte regelmäßig über bestimmte Informationen informiert werden, wenn ich eine Webanwendung mit SpringBoot erstelle! !! !! Als Ergebnis der Untersuchung der Denkmethode konnte ich sie unerwartet leicht umsetzen und habe sie zusammengefasst.
Greifen Sie auf die unten stehende URL zu, lesen Sie den angezeigten QR-Code und fügen Sie LINE Notify als Freund hinzu.
https://notify-bot.line.me/ja/
Nachdem Sie sich mit Ihrem LINE-Konto auf derselben Seite angemeldet haben, gehen Sie anschließend zu "Meine Seite" → "Zugriffstoken ausstellen". Geben Sie den Token-Namen ein (wird oben in der Nachricht angezeigt, wenn die Nachricht tatsächlich über LINE benachrichtigt wird) und wählen Sie einen beliebigen Gesprächsraum aus, in dem das Token angezeigt werden soll.
Bitte beachten Sie, dass der Token *** einmal *** angezeigt wird. Sie können jedoch so viele ausgeben, wie Sie möchten. Machen Sie sich also keine Sorgen.
Erstellen Sie eine Bean, die im DI-Container registriert werden soll, um Benachrichtigungen an LINE zu senden. Es sind keine besonderen Abhängigkeiten erforderlich.
LineNotify.java
@Component
public class LineNotify {
public void executeNotification() {
String message = "Nachricht, die Sie senden möchten";
String token = "Token erhalten";
sendNotification(message,token);
}
public void sendNotification(String message, String token) {
HttpURLConnection connection = null;
try {
URL url = new URL("https://notify-api.line.me/api/notify");
connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.addRequestProperty("Authorization", "Bearer " + token);
try (OutputStream outputStream = connection.getOutputStream();
PrintWriter writer = new PrintWriter(outputStream)) {
writer.append("message=").append(URLEncoder.encode(message, "UTF-8")).flush();
}
} catch (Exception e) {
} finally {
if (connection != null) {
connection.disconnect();
}
}
}
}
Übergeben Sie die Nachricht und das Token, die Sie senden möchten, an das Argument der sendNotification-Methode und führen Sie die POST-Kommunikation an die angegebene URL aus. Die OAuth-Authentifizierung ist erforderlich, um Benachrichtigungen mit LINE Notify zu senden. Die Authentifizierung wird jedoch ausgeführt, indem dem Anforderungsheader in der Methode "Authorization: Bearer <access_token>" hinzugefügt wird.
So aktivieren Sie die geplante Taskausführungsfunktion
Verwenden Sie die Annotation @ EnableScheduling
für die Hauptklasse.
Application.java
@SpringBootApplication
@EnableScheduling //···hinzufügen
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Auf diese Weise können Sie jede Bean in einem DI-Container erkennen, die die Annotation "@ Scheduled" verwendet. Kehren wir also zu der Klasse zurück, die die Benachrichtigungsfunktion implementiert hat, und fügen Sie der Methode, die wir tatsächlich regelmäßig ausführen möchten, eine Anmerkung hinzu.
LineNotify.java
@Component
public class LineNotify {
@Scheduled(cron = "0 * * * * *", zone = "Asia/Tokyo") //···hinzufügen
public void executeNotification() {
String message = "Nachricht, die Sie senden möchten";
String token = "Token erhalten";
sendNotification(message,token);
}
...
Sobald dies erledigt ist, müssen Sie nur noch den Server starten und die Aufgabe wird ausgeführt und Sie werden benachrichtigt.
cron
gibt den Zyklus für die Ausführung von Aufgaben an, und zone
gibt die Zeitzone an.
Von links kann cron
Trigger für" Sekunden, Minuten, Stunden, Monate, Tage, Tage "setzen, und der obige Beispielcode ist so eingestellt, dass die Aufgabe mit 0 Sekunden pro Minute ausgeführt wird. Zum Beispiel, wenn Sie jeden Tag um 9:00:00 Uhr eine Aufgabe ausführen möchten
Stellen Sie so etwas wie "cron = "0 0 9 * * *"
" ein.
Es gibt andere Optionen wie "initialDelay", das die Ausführung n Sekunden nach dem Start der Anwendung angibt, und "fixedDelay", das die Ausführung n Sekunden nach Abschluss der Ausführung des Methodenprozesses angibt, sodass Sie sie relativ frei anpassen können. tun können.
Benachrichtigung durch LINE Benachrichtigung von Java in 5 Minuten implementiert ・ So führen Sie Aufgaben regelmäßig mit Spring Boot aus
Recommended Posts