如何在启动Alfresco服务器时启动我的调度程序? Liferay提供onstartup服务器事件。 Alfresco中是否有类似的功能可以在Alfresco服务器启动时启动我的Cron作业?
答案 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
[....]
;;