[AEM Scheduler部署后需要自动启动

问题描述 投票:0回答:1

捆绑中需要AEM调度程序代码以选择osgi配置,并在部署捆绑后立即自动开始执行。当前,在部署包含调度程序代码的捆绑软件之后,每次都必须保存相应调度程序的配置才能启动它。

任何指针都将不胜感激。

adobe aem aem-6
1个回答
0
投票

Sling Scheduler作业只是可运行的OSGi服务。 Sling Scheduler Service将找到所有它们,并将根据它们的配置(使用cron样式或定期)触发它们。

https://sling.apache.org/documentation/bundles/scheduler-service-commons-scheduler.html

如果您想使用Config-Class,请用您的代码扩展您的问题(简化为基本内容,在您情况下为config和scheduler作业。

这里是一个有效的例子。捆绑软件激活后,作业每5秒运行一次。无论捆绑软件是如何停止/启动,还是关闭并重新启动AEM。

import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.lang.invoke.MethodHandles;

@Component(service = Runnable.class,
        property = {
                "scheduler.expression=*/5 * * * * ?"
        })
public class SchedulerTest implements Runnable {

    private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());

    public void run() {
        LOG.info("run");
    }

    @Activate
    protected void activate() {
        LOG.info("activated");
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.