diff --git a/src/main/java/kinosearch/kinosearch3/spider/Main.java b/src/main/java/kinosearch/kinosearch3/spider/Main.java index 09827f1..79c0364 100644 --- a/src/main/java/kinosearch/kinosearch3/spider/Main.java +++ b/src/main/java/kinosearch/kinosearch3/spider/Main.java @@ -11,6 +11,10 @@ public class Main { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("/kinosearch/kinosearch3/spider/spring.xml"); Spider spider = ctx.getBean("spider", Spider.class); - spider.start(); + if (args.length > 0 && !args[0].trim().isEmpty()) { + spider.start(args[0]); + } else { + spider.start(); + } } } diff --git a/src/main/java/kinosearch/kinosearch3/spider/Spider.java b/src/main/java/kinosearch/kinosearch3/spider/Spider.java index 5809ee5..b825f4c 100644 --- a/src/main/java/kinosearch/kinosearch3/spider/Spider.java +++ b/src/main/java/kinosearch/kinosearch3/spider/Spider.java @@ -16,11 +16,28 @@ public class Spider { this.fileDownloader = fileDownloader; } + /** + * Запуск всех сканеров + */ void start() { + start(null); + } + + /** + * Запуск только одного сканера + * @param scannerName название сканера + */ + void start(String scannerName) { fileDownloader.start(); ThreadGroup threadGroup = new ThreadGroup("Scanners"); for (ScannerCinema scanner : scanners) { + if (scannerName != null && !scannerName.isEmpty()) { + if (!scanner.getName().equalsIgnoreCase(scannerName) && + !scanner.getName().equalsIgnoreCase(scannerName+"Scanner")) { + continue; + } + } (new Thread(threadGroup, scanner::run, "Scanner " + scanner.getName())).start(); }