001
014
015 package com.liferay.portal.backgroundtask.messaging;
016
017 import com.liferay.portal.kernel.backgroundtask.BackgroundTaskStatus;
018 import com.liferay.portal.kernel.backgroundtask.BackgroundTaskStatusMessageTranslator;
019 import com.liferay.portal.kernel.backgroundtask.BackgroundTaskStatusRegistryUtil;
020 import com.liferay.portal.kernel.log.Log;
021 import com.liferay.portal.kernel.log.LogFactoryUtil;
022 import com.liferay.portal.kernel.messaging.BaseMessageListener;
023 import com.liferay.portal.kernel.messaging.Message;
024
025
028 public class BackgroundTaskStatusMessageListener extends BaseMessageListener {
029
030 public BackgroundTaskStatusMessageListener(
031 long backgroundTaskId, BackgroundTaskStatusMessageTranslator
032 backgroundTaskStatusMessageTranslator) {
033
034 _backgroundTaskId = backgroundTaskId;
035 _backgroundTaskStatusMessageTranslator =
036 backgroundTaskStatusMessageTranslator;
037 }
038
039 @Override
040 protected void doReceive(Message message) throws Exception {
041 long backgroundTaskId = message.getLong("backgroundTaskId");
042
043 if (backgroundTaskId != _backgroundTaskId) {
044 return;
045 }
046
047 BackgroundTaskStatus backgroundTaskStatus =
048 BackgroundTaskStatusRegistryUtil.getBackgroundTaskStatus(
049 backgroundTaskId);
050
051 if (backgroundTaskStatus == null) {
052 if (_log.isDebugEnabled()) {
053 _log.debug(
054 "Unable to locate status for background task " +
055 backgroundTaskId + " to process " + message);
056 }
057
058 return;
059 }
060
061 _backgroundTaskStatusMessageTranslator.translate(
062 backgroundTaskStatus, message);
063 }
064
065 private static Log _log = LogFactoryUtil.getLog(
066 BackgroundTaskStatusMessageListener.class);
067
068 private long _backgroundTaskId;
069 private BackgroundTaskStatusMessageTranslator
070 _backgroundTaskStatusMessageTranslator;
071
072 }