1 package org
.asamk
.signal
.manager
.internal
;
3 import org
.asamk
.signal
.manager
.helper
.Context
;
4 import org
.asamk
.signal
.manager
.jobs
.Job
;
5 import org
.slf4j
.Logger
;
6 import org
.slf4j
.LoggerFactory
;
8 import java
.util
.concurrent
.ExecutorService
;
9 import java
.util
.concurrent
.Executors
;
11 public class JobExecutor
implements AutoCloseable
{
13 private static final Logger logger
= LoggerFactory
.getLogger(JobExecutor
.class);
14 private final Context context
;
15 private final ExecutorService executorService
;
17 public JobExecutor(final Context context
) {
18 this.context
= context
;
19 this.executorService
= Executors
.newCachedThreadPool();
22 public void enqueueJob(Job job
) {
23 logger
.debug("Enqueuing {} job", job
.getClass().getSimpleName());
25 executorService
.execute(() -> job
.run(context
));
30 executorService
.close();