NutzCN Logo
问答 NB的Quartz怎么使用
发布于 2281天前 作者 文涛(wentao) 1573 次浏览 复制 上一个帖子 下一个帖子
标签:

RT,貌似没有demo

24 回复

额,加上starter然后加quartz.properties吧,忘记写它的demo了

不需要加ioc配置,cron.properties的内容写在application.properties,不需要setup里面初始化

可是不知道怎么写,而且不知道怎么指定运行我指定的方法

对 Quartz不是很了解,看了下nutz的Quartz插件源码,我可不可以这么理解
NutzBoot我不用配置,Quartz会使用默认配置
自己实现Job任务
然后我想办法拿到QuartzManager对象
使用QuartzManager将Job任务添加到任务池,且可自由添加、修改、启动、暂停任务

看了下NutQuartzCronJobFactory的源码
自动扫描cron.开头的配置项
如果有pkgs,自动扫描指定包下的所有带有Scheduled注解的类,获取其cron,加入到任务池中
我理解对不

理解得没错

@wendal 请问NutzBoot源码怎么添加demo,有没有规范,准备写个Quartz pull req上去

参考nutzboot-demo-simple里面的写一个就行

IDEA 老是建不好相同结构的Module...

可以了,原来是要新建一个Maven的Module

我之前fork的代码貌似不是最新的,重新clone也不是,请问要怎么获取官方个最新代码

知道了,反过来pull req就可以了。。。

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>nutzboot-demo-simple</artifactId>
        <groupId>org.nutz</groupId>
        <version>2.2-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>nutzboot-demo-simple-quartz</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.nutz</groupId>
            <artifactId>nutzboot-starter-nutz-mvc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.nutz</groupId>
            <artifactId>nutzboot-starter-jetty</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
                                <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/nutz/org.nutz.boot.starter.NbStarter</resource>
                                </transformer>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>io.nutz.demo.simple.MainLauncher</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

运行报错

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

日志可以打印了,但是quartz貌似并没有运行

debug一下QuartzStarter试试

start方法打了断点,没进去,是不是我的pom.xml还要添加什么依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>nutzboot-demo-simple</artifactId>
        <groupId>org.nutz</groupId>
        <version>2.2-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>nutzboot-demo-simple-quartz</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.nutz</groupId>
            <artifactId>nutzboot-starter-nutz-mvc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.nutz</groupId>
            <artifactId>nutzboot-starter-quartz</artifactId>
        </dependency>
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
        </dependency>
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz-jobs</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
                                <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>META-INF/nutz/org.nutz.boot.starter.NbStarter</resource>
                                </transformer>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>io.nutz.demo.simple.MainLauncher</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

NB是已经可以了,但是demo里面不执行。。。

额,检查一下NbStarter文件

实在不知道怎么搞了,暂时暂停了,另外问下,怎么获取QuartzManager对象呢

我像实现的是程序启动,只加入任务,并置为暂停状态,然后页面上手工启动

@Inject QuartzManager quartzManager; 就可以拿到啦

谢谢,有没有什么方法可以print出有哪些对象可以Inject注入,这样就可以 快速掌握了

ioc容器有个getName方法返回所有bean的名字

添加回复
请先登陆
回到顶部