issue-86 #102
@ -21,6 +21,11 @@
|
|||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.quartz-scheduler</groupId>
|
||||||
|
<artifactId>quartz</artifactId>
|
||||||
|
<version>2.3.2</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-security</artifactId>
|
<artifactId>spring-boot-starter-security</artifactId>
|
||||||
|
@ -1,8 +1,29 @@
|
|||||||
package core.services.ntfy;
|
package core.services.ntfy;
|
||||||
|
|
||||||
public class NtfyTask implements Runnable{
|
import org.quartz.Job;
|
||||||
|
import org.quartz.JobExecutionContext;
|
||||||
|
import org.quartz.JobExecutionException;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.*;
|
||||||
|
import java.net.http.HttpClient;
|
||||||
|
import java.net.http.HttpRequest;
|
||||||
|
import java.net.http.HttpResponse;
|
||||||
|
|
||||||
|
public class NtfyTask implements Job {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||||
System.out.println("A little Test");
|
HttpClient httpClient = HttpClient.newHttpClient();
|
||||||
|
|
||||||
|
try {
|
||||||
|
HttpRequest request = HttpRequest.newBuilder()
|
||||||
|
.uri(new URI("http://localhost:4280/Test"))
|
||||||
|
.POST(HttpRequest.BodyPublishers.ofString("A simple testmessage"))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString());
|
||||||
|
} catch (URISyntaxException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,21 +1,38 @@
|
|||||||
package core.services.ntfy;
|
package core.services.ntfy;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.scheduling.TaskScheduler;
|
|
||||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
|
|
||||||
import org.springframework.scheduling.support.CronTrigger;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
import org.quartz.*;
|
||||||
import java.util.Map;
|
import org.quartz.impl.StdSchedulerFactory;
|
||||||
import java.util.TimeZone;
|
|
||||||
import java.util.concurrent.ScheduledFuture;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.ZoneId;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
public class TaskSchedulingService {
|
public class TaskSchedulingService {
|
||||||
|
|
||||||
|
|
||||||
public static void scheduleTask() {
|
public static void scheduleTask() throws SchedulerException {
|
||||||
ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
|
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
|
||||||
threadPoolTaskScheduler.initialize();
|
scheduler.start();
|
||||||
threadPoolTaskScheduler.schedule(new NtfyTask(), new CronTrigger("0 0/1 * 1/1 * *"));
|
|
||||||
|
JobDetail job = JobBuilder.newJob(NtfyTask.class).withIdentity("Job 1", "Group 1").build();
|
||||||
|
JobDetail job2 = JobBuilder.newJob(NtfyTask.class).withIdentity("Job 2", "Group 1").build();
|
||||||
|
|
||||||
|
LocalDateTime executionTime = LocalDateTime.of(2024, 3, 14, 9, 18); // Example: March 15, 2024, 10:00 AM
|
||||||
|
|
||||||
|
Trigger trigger = TriggerBuilder.newTrigger()
|
||||||
|
.withIdentity("trigger1", "Group 1")
|
||||||
|
.startAt(calculateDelayInMillis(executionTime)).build();
|
||||||
|
Trigger trigger2 = TriggerBuilder.newTrigger()
|
||||||
|
.withIdentity("trigger2", "Group 1")
|
||||||
|
.startAt(calculateDelayInMillis(executionTime.plusMinutes(1))).build();
|
||||||
|
|
||||||
|
Trigger immediatly = TriggerBuilder.newTrigger().withIdentity("Immediately", "Group 1").startNow().build();
|
||||||
|
|
||||||
|
scheduler.scheduleJob(job, immediatly);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Date calculateDelayInMillis(LocalDateTime executionTime) {
|
||||||
|
return Date.from(executionTime.atZone(ZoneId.systemDefault()).toInstant());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user