Commit b91d42b7 authored by wenmo's avatar wenmo

[Optimization-397] [daemon] SPI Optimization

parent f044493d
package com.dlink.daemon.task;
import java.util.Optional;
import java.util.ServiceLoader;
import com.dlink.assertion.Asserts;
import com.dlink.daemon.exception.DaemonTaskException;
import sun.misc.Service;
import java.util.Iterator;
import java.util.Optional;
public interface DaemonTask {
static Optional<DaemonTask> get(DaemonTaskConfig config) {
Asserts.checkNotNull(config, "线程任务配置不能为空");
Iterator<DaemonTask> providers = Service.providers(DaemonTask.class);
while (providers.hasNext()) {
DaemonTask daemonTask = providers.next();
ServiceLoader<DaemonTask> daemonTasks = ServiceLoader.load(DaemonTask.class);
for (DaemonTask daemonTask : daemonTasks) {
if (daemonTask.canHandle(config.getType())) {
return Optional.of(daemonTask.setConfig(config));
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment