2014-10-30 58 views
1

如何在啓動Alfresco服務器時啓動我的調度程序? Liferay提供onstartup服務器事件。在Alfresco中是否有類似的功能可以在Alfresco服務器啓動時啓動我的Cron作業?如何在啓動露天服務器時啓動我的cron作業?

+0

Alfresco內置了自己的(集羣感知)調度。您究竟想要做什麼? – 2014-10-30 12:23:14

+0

感謝您的回覆我有一些任務,我只想在服務器啓動時,例如創建表,並輸入啓動時間。以及類的東西。在cron工作的幫助下。 – 2014-10-30 14:03:47

回答

0

爲了滿足您的需求,您可以通過將其附加到戶外啓動腳本來啓動您的工作執行。

編輯: /etc/init.d/alfresco

投入 「開始」 部分你的工作,例如:

case $1 in 
    start) 
    sh YOUR_CRON_JOB 
    [....] 
    ;; 
+0

謝謝答案我正在使用Windows系統。究竟哪個腳本需要修改。我沒有太多經驗在Alfresco.Thanks.I使用社區版4.2 – 2014-10-30 12:36:40

+0

我不是Windows專家對不起。嘗試找到在Windows中啓動服務時如何鏈接腳本或操作。您可以嘗試使用服務屬性(RUN >> services.msc)更改它,然後單擊有關服務上的屬性 – 2014-10-30 13:57:42

3

它沒有意義的,使用cron或者類似的服務,如果你想在啓動時運行自定義代碼。將從org.springframework.extensions.surf.util.AbstractLifecycleBean派生的自定義Spring管理bean添加到文件tomcat/shared/classes/alfresco/extension/startup-context.xml(或等效項)。把你的代碼放在onBootstrap方法中。

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  

} 

... }

希望這有助於。