Skip to content

Commit d6af887

Browse files
working on #141 #142 #143
1 parent f366b3a commit d6af887

File tree

2 files changed

+39
-28
lines changed

2 files changed

+39
-28
lines changed

src/main/java/org/woehlke/twitterwall/frontend/controller/TaskController.java

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,14 @@
1111
import org.springframework.web.bind.annotation.PathVariable;
1212
import org.springframework.web.bind.annotation.RequestMapping;
1313
import org.springframework.web.bind.annotation.RequestParam;
14-
import org.woehlke.twitterwall.conf.TwitterProperties;
1514
import org.woehlke.twitterwall.conf.TwitterwallFrontendProperties;
1615
import org.woehlke.twitterwall.frontend.controller.common.Symbols;
1716
import org.woehlke.twitterwall.frontend.controller.common.ControllerHelper;
1817
import org.woehlke.twitterwall.oodm.entities.Task;
1918
import org.woehlke.twitterwall.oodm.entities.TaskHistory;
2019
import org.woehlke.twitterwall.oodm.service.TaskHistoryService;
2120
import org.woehlke.twitterwall.oodm.service.TaskService;
22-
import org.woehlke.twitterwall.scheduled.service.facade.FetchTweetsFromTwitterSearch;
23-
import org.woehlke.twitterwall.scheduled.service.facade.FetchUsersFromDefinedUserList;
24-
import org.woehlke.twitterwall.scheduled.service.facade.UpdateTweets;
21+
import org.woehlke.twitterwall.scheduled.mq.endoint.StartTask;
2522

2623
/**
2724
* Created by tw on 11.07.17.
@@ -125,54 +122,45 @@ public String updateUserProfilesRequest(Model model) {
125122

126123
@Async
127124
protected void fetchTweetsFromTwitterSearch() {
128-
fetchTweetsFromTwitterSearch.fetchTweetsFromTwitterSearch();;
125+
startTask.fetchTweetsFromTwitterSearch();
129126
}
130127

131128
@Async
132129
protected void updateTweets() {
133-
updateTweets.updateTweets();
130+
startTask.updateTweets();
134131
}
135132

136133
@Async
137134
protected void fetchUsersFromDefinedUserList(){
138-
fetchUsersFromDefinedUserList.fetchUsersFromDefinedUserList();
135+
startTask.fetchUsersFromDefinedUserList();
139136
}
140137

141138
@Async
142139
protected void updateUserProfilesFromMentions(){
143-
140+
startTask.updateUserProfilesFromMentions();
144141
}
145142

146143
@Async
147144
protected void updateUserProfiles() {
148-
145+
startTask.updateUserProfiles();
149146
}
150147

151148
private final TaskService taskService;
152149

153150
private final TaskHistoryService taskHistoryService;
154151

155-
private final FetchTweetsFromTwitterSearch fetchTweetsFromTwitterSearch;
156-
157-
private final FetchUsersFromDefinedUserList fetchUsersFromDefinedUserList;
158-
159-
private final UpdateTweets updateTweets;
160-
161152
private final TwitterwallFrontendProperties twitterwallFrontendProperties;
162153

163-
private final TwitterProperties twitterProperties;
164-
165154
private final ControllerHelper controllerHelper;
166155

156+
private final StartTask startTask;
157+
167158
@Autowired
168-
public TaskController(TaskService taskService, TaskHistoryService taskHistoryService, FetchTweetsFromTwitterSearch fetchTweetsFromTwitterSearch, FetchUsersFromDefinedUserList fetchUsersFromDefinedUserList, UpdateTweets updateTweets, TwitterwallFrontendProperties twitterwallFrontendProperties, TwitterProperties twitterProperties, ControllerHelper controllerHelper) {
159+
public TaskController(TaskService taskService, TaskHistoryService taskHistoryService, TwitterwallFrontendProperties twitterwallFrontendProperties, ControllerHelper controllerHelper, StartTask startTask) {
169160
this.taskService = taskService;
170161
this.taskHistoryService = taskHistoryService;
171-
this.fetchTweetsFromTwitterSearch = fetchTweetsFromTwitterSearch;
172-
this.fetchUsersFromDefinedUserList = fetchUsersFromDefinedUserList;
173-
this.updateTweets = updateTweets;
174162
this.twitterwallFrontendProperties = twitterwallFrontendProperties;
175-
this.twitterProperties = twitterProperties;
176163
this.controllerHelper = controllerHelper;
164+
this.startTask = startTask;
177165
}
178166
}

src/main/java/org/woehlke/twitterwall/scheduled/mq/endoint/impl/StartTaskImpl.java

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,31 +85,54 @@ private void messageSender(final TaskType taskType) {
8585
@Scheduled(fixedRate = FIXED_RATE_FOR_SCHEDULAR_FETCH_TWEETS)
8686
public void fetchTweetsFromTwitterSearch() {
8787
TaskType taskType = TaskType.FETCH_TWEETS_FROM_TWITTER_SEARCH;
88-
sendAndReceive(taskType);
88+
sendAndReceiveTweet(taskType);
8989
}
9090

9191
@Override
9292
@Scheduled(fixedRate = FIXED_RATE_FOR_SCHEDULAR_UPDATE_TWEETS)
9393
public void updateTweets() {
9494
TaskType taskType = TaskType.UPDATE_TWEETS;
95-
sendAndReceive(taskType);
95+
sendAndReceiveTweet(taskType);
9696
}
9797

9898
@Override
9999
@Scheduled(fixedRate = FIXED_RATE_FOR_SCHEDULAR_UPDATE_USER)
100100
public void updateUserProfiles() {
101101
TaskType taskType = TaskType.UPDATE_USER_PROFILES;
102-
sendAndReceive(taskType);
102+
sendAndReceiveUser(taskType);
103103
}
104104

105105
@Override
106106
@Scheduled(fixedRate = FIXED_RATE_FOR_SCHEDULAR_UPDATE_USER_BY_MENTION)
107107
public void updateUserProfilesFromMentions() {
108108
TaskType taskType = TaskType.UPDATE_USER_PROFILES_FROM_MENTIONS;
109-
sendAndReceive(taskType);
109+
sendAndReceiveUser(taskType);
110110
}
111111

112-
private void sendAndReceive(TaskType taskType){
112+
private void sendAndReceiveTweet(TaskType taskType){
113+
CountedEntities countedEntities = countedEntitiesService.countAll();
114+
Task task = taskService.create("Start via MQ", taskType,countedEntities);
115+
TaskMessage taskMessage = new TaskMessage(task.getId(), taskType, task.getTimeStarted());
116+
Message<TaskMessage> mqMessage = MessageBuilder.withPayload(taskMessage)
117+
.setHeader("task_id", task.getId())
118+
.setHeader("task_uid", task.getUniqueId())
119+
.setHeader("task_type", task.getTaskType())
120+
.build();
121+
MessagingTemplate mqTemplate = new MessagingTemplate();
122+
Message<?> returnedMessage = mqTemplate.sendAndReceive(startTaskChannel, mqMessage);
123+
Object o = returnedMessage.getPayload();
124+
countedEntities = countedEntitiesService.countAll();
125+
if( o instanceof TweetResultList){
126+
TweetResultList msg = (TweetResultList) o;
127+
long taskId = msg.getTaskId();
128+
task = taskService.findById(taskId);
129+
taskService.done(task,countedEntities);
130+
} else {
131+
taskService.error(task,"Wrong type of returnedMessage",countedEntities);
132+
}
133+
}
134+
135+
private void sendAndReceiveUser(TaskType taskType){
113136
CountedEntities countedEntities = countedEntitiesService.countAll();
114137
Task task = taskService.create("Start via MQ", taskType,countedEntities);
115138
TaskMessage taskMessage = new TaskMessage(task.getId(), taskType, task.getTimeStarted());
@@ -136,7 +159,7 @@ private void sendAndReceive(TaskType taskType){
136159
@Scheduled(fixedRate = FIXED_RATE_FOR_SCHEDULAR_FETCH_USER_LIST)
137160
public void fetchUsersFromDefinedUserList() {
138161
TaskType taskType = TaskType.FETCH_USERS_FROM_DEFINED_USER_LIST;
139-
sendAndReceive(taskType);
162+
sendAndReceiveUser(taskType);
140163
}
141164

142165
@Override

0 commit comments

Comments
 (0)