use of com.virjar.vscrawler.core.VSCrawlerContext in project vscrawler by virjar.
the class VSCrawlerConfigFileWatcher method loadFileAndSendEvent.
private void loadFileAndSendEvent(String filePath) {
Properties tempProperties = new Properties();
FileInputStream fileInputStream = null;
InputStream defaultConfigInput = null;
try {
defaultConfigInput = VSCrawlerConfigFileWatcher.class.getResourceAsStream("/default_vsCrawler.properties");
// 先加载默认配置
tempProperties.load(defaultConfigInput);
File configFile = new File(filePath);
if (configFile.exists()) {
fileInputStream = new FileInputStream(configFile);
// 然后使用用户热发配置覆盖
tempProperties.load(fileInputStream);
}
// 没有报异常才发送通知
for (VSCrawlerContext vsCrawlerContext : VSCrawlerContext.getAllContext()) {
vsCrawlerContext.getAutoEventRegistry().findEventDeclaring(CrawlerConfigChangeEvent.class).configChange(vsCrawlerContext, tempProperties);
}
oldProperties = tempProperties;
} catch (Exception e) {
e.printStackTrace();
} finally {
IOUtils.closeQuietly(defaultConfigInput);
IOUtils.closeQuietly(fileInputStream);
}
}
use of com.virjar.vscrawler.core.VSCrawlerContext in project vscrawler by virjar.
the class EventTest method main.
public static void main(String[] args) {
VSCrawlerContext vsCrawlerContext = VSCrawlerContext.create("testCrawler");
vsCrawlerContext.getEventLoop().loop();
AutoEventRegistry eventRegister = vsCrawlerContext.getAutoEventRegistry();
eventRegister.registerObserver(new UserLoginEvent() {
@Override
public void afterUserLogin(VSCrawlerContext vsCrawlerContext1, User user, boolean loginSucces) {
System.out.println(Thread.currentThread() + "用户登录:" + (loginSucces ? "成功" : "失败"));
}
});
UserLoginEvent userLoginEvent = eventRegister.findEventDeclaring(UserLoginEvent.class);
for (int i = 0; i < 10; i++) {
userLoginEvent.afterUserLogin(vsCrawlerContext, null, false);
}
CommonUtil.sleep(20000);
}
use of com.virjar.vscrawler.core.VSCrawlerContext in project vscrawler by virjar.
the class ResourceController method reloadResource.
@RequestMapping("/reloadResource")
@ResponseBody
public WebJsonResponse<String> reloadResource(@RequestParam("crawlerName") String appSource, @RequestParam("resourceName") String resourceName) {
VSCrawler vsCrawler = crawlerManager.get(appSource);
if (vsCrawler == null) {
return ReturnUtil.failed("no crawler defined :" + appSource);
}
VSCrawlerContext vsCrawlerContext = vsCrawler.getVsCrawlerContext();
vsCrawlerContext.getResourceManager().reloadResource(resourceName);
return ReturnUtil.success("success");
}
use of com.virjar.vscrawler.core.VSCrawlerContext in project vscrawler by virjar.
the class ResourceController method reloadAccount.
@RequestMapping("/reloadAccount")
@ResponseBody
public WebJsonResponse<String> reloadAccount(@RequestParam("crawlerName") String appSource) {
VSCrawler vsCrawler = crawlerManager.get(appSource);
if (vsCrawler == null) {
return ReturnUtil.failed("no crawler defined :" + appSource);
}
VSCrawlerContext vsCrawlerContext = vsCrawler.getVsCrawlerContext();
vsCrawlerContext.getResourceManager().reloadResource(vsCrawlerContext.makeUserResourceTag());
return ReturnUtil.success("success");
}
Aggregations