栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

AEM调度程序的配置更改?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

AEM调度程序的配置更改?

以下解决方案按要求工作,这里处理了三种情况

  • with
    addJob()
    :每分钟执行一次作业
  • with
    addPeriodicJob()
    :每3分钟执行一次作业
  • with

    fireJobAt()
    :在特定日期(部署日期+延迟30秒)执行作业

    import java.io.Serializable;

    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;

    import org.apache.felix.scr.annotations.Component;
    import org.apache.felix.scr.annotations.Reference;
    import org.apache.sling.commons.scheduler.Scheduler;
    import org.osgi.service.component.ComponentContext;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;

    @Component
    public class ScheduledPeriodicJob {

    /* Default log. /
    protected final Logger log = LoggerFactory.getLogger(this.getClass());

    /* The scheduler for rescheduling jobs. /
    @Reference
    private Scheduler scheduler;

    protected void activate(ComponentContext componentContext) throws Exception {
    //case 1: with addJob() method: executes the job every minute
    String schedulingexpression = “0 * * ?”;
    String jobName1 = “case1”;
    Map config1 = new HashMap();
    boolean canRunConcurrently = true;
    final Runnable job1 = new Runnable() {
    public void run() {
    log.info(“nnExecuting”);
    log.info(“nnExecuting”);
    log.info(“nnExecuting”);
    log.info(“nnExecuting”);
    log.info(“nnExecuting”);
    log.info(“nnExecuting”);
    log.info(“nnExecuting”);
    log.info(“nnExecuting”);
    log.info(“nnExecuting”);
    }
    };
    try {
    this.scheduler.addJob(jobName1, job1, config1, schedulingexpression, canRunConcurrently);
    } catch (Exception e) {
    job1.run();
    }

    //case 2: with addPeriodicJob(): executes the job every 3 minutes        String jobName2 = "case2";        long period = 180;        Map<String, Serializable> config2 = new HashMap<String, Serializable>();        final Runnable job2 = new Runnable() { public void run() {     log.info("nExecuting 2");     log.info("nExecuting 2");     log.info("nExecuting 2");     log.info("nExecuting 2");     log.info("nExecuting 2");     log.info("nExecuting 2");     log.info("nExecuting 2");     log.info("nExecuting 2"); }        };        try { this.scheduler.addPeriodicJob(jobName2, job2, config2, period, canRunConcurrently);        } catch (Exception e) { job2.run();        }//case 3: with fireJobAt(): executes the job at a specific date (date of deployment + delay of 30 seconds)        String jobName3 = "case3";        final long delay = 30*1000;        final Date fireDate = new Date();        fireDate.setTime(System.currentTimeMillis() + delay);        Map<String, Serializable> config3 = new HashMap<String, Serializable>();        final Runnable job3 = new Runnable() { public void run() {     log.info("nExecuting at date: {} with a delay of: {} seconds", fireDate, delay/1000);     log.info("nExecuting at date: {} with a delay of: {} seconds", fireDate, delay/1000);     log.info("nExecuting at date: {} with a delay of: {} seconds", fireDate, delay/1000);     log.info("nExecuting at date: {} with a delay of: {} seconds", fireDate, delay/1000);     log.info("nExecuting at date: {} with a delay of: {} seconds", fireDate, delay/1000);     log.info("nExecuting at date: {} with a delay of: {} seconds", fireDate, delay/1000);     log.info("nExecuting at date: {} with a delay of: {} seconds", fireDate, delay/1000);     log.info("nExecuting at date: {} with a delay of: {} seconds", fireDate, delay/1000);     log.info("nExecuting at date: {} with a delay of: {} seconds", fireDate, delay/1000);     log.info("nExecuting at date: {} with a delay of: {} seconds", fireDate, delay/1000); }        };        try { this.scheduler.fireJobAt(jobName3, job3, config3, fireDate);        } catch (Exception e) { job3.run();        }

    }

    protected void deactivate(ComponentContext componentContext) {
    log.info(“Deactivateddbye!”);
    }

    }

下边是

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/maven-v4_0_0.xsd ">    <modelVersion>4.0.0</modelVersion>    <!-- ====================================================================== -->    <!-- P A R E N T P R O J E C T D E script I O N -->    <!-- ====================================================================== -->    <parent>        <groupId>com.adobe.cq</groupId>        <artifactId>schedule</artifactId>        <version>1.0-SNAPSHOT</version>    </parent>    <!-- ====================================================================== -->    <!-- P R O J E C T D E script I O N -->    <!-- ====================================================================== -->    <artifactId>schedule-bundle</artifactId>    <packaging>bundle</packaging>    <name>My Project Bundle</name>    <dependencies>        <dependency> <groupId>org.osgi</groupId> <artifactId>org.osgi.compendium</artifactId>        </dependency>        <dependency> <groupId>org.osgi</groupId> <artifactId>org.osgi.core</artifactId>        </dependency>        <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.scr.annotations</artifactId>        </dependency>        <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId>        </dependency>        <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId>        </dependency>        <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version>        </dependency>        <dependency> <groupId>com.tagic</groupId> <artifactId>logger</artifactId> <version>0.0.1-SNAPSHOT</version> <scope>system</scope> <systemPath>${project.basedir}/lib/logger-0.0.1-SNAPSHOT.jar</systemPath>        </dependency>        <dependency> <groupId>com.tagic</groupId> <artifactId>org.apache.sling.commons.scheduler</artifactId> <version>0.0.1-SNAPSHOT</version> <scope>system</scope> <systemPath>${project.basedir}/lib/org.apache.sling.commons.scheduler-2.3.3-R1232965.jar</systemPath>        </dependency></dependencies>    <!-- ====================================================================== -->    <!-- B U I L D D E F I N I T I O N -->    <!-- ====================================================================== -->    <build>        <plugins> <plugin>     <groupId>org.apache.felix</groupId>     <artifactId>maven-scr-plugin</artifactId>     <executions>         <execution>  <id>generate-scr-descriptor</id>  <goals>      <goal>scr</goal>  </goals>         </execution>     </executions> </plugin> <plugin>     <groupId>org.apache.felix</groupId>     <artifactId>maven-bundle-plugin</artifactId>     <extensions>true</extensions>     <configuration>         <instructions>  <Bundle-SymbolicName>com.adobe.cq.schedule-bundle</Bundle-SymbolicName>         </instructions>     </configuration> </plugin> <plugin>     <groupId>org.apache.sling</groupId>     <artifactId>maven-sling-plugin</artifactId>     <configuration>         <slingUrl>http://${crx.host}:${crx.port}/apps/myproject/install</slingUrl>         <usePut>true</usePut>     </configuration> </plugin> <plugin>     <groupId>org.apache.maven.plugins</groupId>     <artifactId>maven-javadoc-plugin</artifactId>     <configuration>         <excludePackageNames>  *.impl         </excludePackageNames>     </configuration> </plugin>        </plugins>    </build></project>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/610357.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号