2015-05-07 34 views
1

需要項目,我點擊它時需要一個按鈕,它會立即在liferay 6.1.1中觸發一個調度程序作業。我知道liferay 4.2之前有一個API JobScheduler.triggerJob()來實現它。但在6.1.1這個API被刪除,有沒有其他方法可以做到這一點?非常感謝。如何在liferay中立即觸發調度程序作業6.1.1

+0

而在QuartzSchedulerEngine我看到很多方法,如暫停,啓動,恢復,更新的工作,但我仍然沒有找到觸發這個工作的任何方法。我在看錯課嗎?謝謝。 –

回答

0

我想更好的方法是在按鈕單擊事件上執行您的流程服務方法,而不是手動觸發作業。如果您已經有一份工作,它可以調用相同的流程服務方法。

但是,如果您想獲得自定義計劃作業,以下信息可能很有用。

SchedulerEngineHelperUtil.schedule menthod將接受自定義觸發器。 Liferay允許指定cron express作爲觸發器。您可以使用下面的表達式立即觸發。

* * * * * ? * 

在LayoutServiceImpl.schedulePublishToLive方法中可以找到示例代碼自定義調度程序。 我相信你可以用類似上面的cron express來立即調用工作。

Trigger trigger = new CronTrigger(
      jobName, groupName, schedulerStartDate, schedulerEndDate, cronText); 

SchedulerEngineHelperUtil.schedule(
      trigger, StorageType.PERSISTED, description, 
      DestinationNames.LAYOUTS_LOCAL_PUBLISHER, publisherRequest, 0); 
+0

我在http://www.cronmaker.com/上測試過「* * * *?*」,但看起來無效,但我會再次檢查真實環境。非常感謝。 –

+0

cron表達式* * * *? * 是無效的。有沒有任何表達方式可以立即調用工作,只需要一次工作? –

+0

對不起,我錯過了一個明星。它應該是5星然後'?'和一顆星星。 check in cronmaker.com – Haris

相關問題