如何在alfresco服务器启动时启动我的cron工作?

时间:2014-10-30 10:05:42

标签: cron alfresco alfresco-share

如何在启动Alfresco服务器时启动我的调度程序? Liferay提供onstartup服务器事件。 Alfresco中是否有类似的功能可以在Alfresco服务器启动时启动我的Cron作业?

3 个答案:

答案 0 :(得分:3)

如果要在启动时运行自定义代码,则使用cron或类似服务是没有意义的。将从org.springframework.extensions.surf.util.AbstractLifecycleBean派生的自定义Spring托管bean添加到文件tomcat/shared/classes/alfresco/extension/startup-context.xml(或等效文件)中。将代码放在onBootstrap方法中。

答案 1 :(得分:1)

另一个好方法是扩展AbstractModuleComponent实现方法executeInternal,并在Spring配置中将executeOnlyOnce设置为false。 这样,每次Alfresco启动时都会执行自定义代码。

以下是Spring配置的示例:

<bean id="initJobsComponent" class="com.sourcesense.alfresco.component.InitJobsComponent" parent="module.baseComponent" >
    <property name="moduleId" value="myModuleId" />
    <property name="name" value="initComponent" />
    <property name="description" value="You description" />
    <property name="sinceVersion" value="1.0" />
    <property name="appliesFromVersion" value="1.0" />
    <property name="executeOnceOnly" value="false"/>
</bean>

您的Java类必须扩展AbstractModuleComponent:

public class InitJobsComponent extends AbstractModuleComponent {

...

@Override
protected void executeInternal() throws Throwable {

//put here your custom code    

}

... }

希望这有帮助。

答案 2 :(得分:0)

为了满足您的需求,您可以通过将其附加到露天启动脚本来启动您的工作执行。

编辑:     /etc/init.d/alfresco

投入&#34;开始&#34;你的工作,例如:

    case $1 in
    start)
   sh YOUR_CRON_JOB
    [....]
    ;;
相关问题