Search in sources :

Example 1 with VSCrawlerContext

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);
    }
}
Also used : VSCrawlerContext(com.virjar.vscrawler.core.VSCrawlerContext) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) Properties(java.util.Properties) File(java.io.File) FileInputStream(java.io.FileInputStream) CrawlerConfigChangeEvent(com.virjar.vscrawler.core.event.systemevent.CrawlerConfigChangeEvent)

Example 2 with VSCrawlerContext

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);
}
Also used : VSCrawlerContext(com.virjar.vscrawler.core.VSCrawlerContext) User(com.virjar.vscrawler.core.net.user.User) UserLoginEvent(com.virjar.vscrawler.core.event.systemevent.UserLoginEvent) AutoEventRegistry(com.virjar.vscrawler.core.event.support.AutoEventRegistry)

Example 3 with VSCrawlerContext

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");
}
Also used : VSCrawler(com.virjar.vscrawler.core.VSCrawler) VSCrawlerContext(com.virjar.vscrawler.core.VSCrawlerContext) RequestMapping(org.springframework.web.bind.annotation.RequestMapping) ResponseBody(org.springframework.web.bind.annotation.ResponseBody)

Example 4 with VSCrawlerContext

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");
}
Also used : VSCrawler(com.virjar.vscrawler.core.VSCrawler) VSCrawlerContext(com.virjar.vscrawler.core.VSCrawlerContext) RequestMapping(org.springframework.web.bind.annotation.RequestMapping) ResponseBody(org.springframework.web.bind.annotation.ResponseBody)

Aggregations

VSCrawlerContext (com.virjar.vscrawler.core.VSCrawlerContext)4 VSCrawler (com.virjar.vscrawler.core.VSCrawler)2 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)2 ResponseBody (org.springframework.web.bind.annotation.ResponseBody)2 AutoEventRegistry (com.virjar.vscrawler.core.event.support.AutoEventRegistry)1 CrawlerConfigChangeEvent (com.virjar.vscrawler.core.event.systemevent.CrawlerConfigChangeEvent)1 UserLoginEvent (com.virjar.vscrawler.core.event.systemevent.UserLoginEvent)1 User (com.virjar.vscrawler.core.net.user.User)1 File (java.io.File)1 FileInputStream (java.io.FileInputStream)1 InputStream (java.io.InputStream)1 Properties (java.util.Properties)1