0

Spider: можно запустить только конкретный сканнер

теперь при запуске "паука" можно указать наименование сканера, который
сейчас должен работать
This commit is contained in:
2017-06-02 10:44:37 +03:00
parent b4e7b5d486
commit d61867f1c1
2 changed files with 22 additions and 1 deletions

View File

@@ -11,6 +11,10 @@ public class Main {
public static void main(String[] args) { public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("/kinosearch/kinosearch3/spider/spring.xml"); ApplicationContext ctx = new ClassPathXmlApplicationContext("/kinosearch/kinosearch3/spider/spring.xml");
Spider spider = ctx.getBean("spider", Spider.class); Spider spider = ctx.getBean("spider", Spider.class);
if (args.length > 0 && !args[0].trim().isEmpty()) {
spider.start(args[0]);
} else {
spider.start(); spider.start();
} }
}
} }

View File

@@ -16,11 +16,28 @@ public class Spider {
this.fileDownloader = fileDownloader; this.fileDownloader = fileDownloader;
} }
/**
* Запуск всех сканеров
*/
void start() { void start() {
start(null);
}
/**
* Запуск только одного сканера
* @param scannerName название сканера
*/
void start(String scannerName) {
fileDownloader.start(); fileDownloader.start();
ThreadGroup threadGroup = new ThreadGroup("Scanners"); ThreadGroup threadGroup = new ThreadGroup("Scanners");
for (ScannerCinema scanner : 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(); (new Thread(threadGroup, scanner::run, "Scanner " + scanner.getName())).start();
} }