如何在 liferay 6.1.1 中立即触发调度程序作业

How to trigger scheduler job immediately in liferay 6.1.1

对于需要的项目,我需要一个按钮,当我单击它时它会立即在 liferay 6.1.1 中触发调度程序作业。我知道在 liferay 4.2 之前有一个 API JobScheduler.triggerJob() 来实现它。但是在 6.1.1 中这个 API 被删除了,我还有什么其他方法可以做到这一点吗?非常感谢。

我想更好的方法是在按钮单击事件上执行流程服务方法,而不是手动触发作业。如果已经有job,可以调用相同的流程服务方法。

但是,如果您想使用自定义计划作业,以下信息可能会有用。

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);