Skip to content

Commit 5b35c84

Browse files
working on #141 #142 #143
1 parent 2f4874b commit 5b35c84

23 files changed

+447
-250
lines changed

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

Lines changed: 9 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import org.springframework.data.domain.PageRequest;
66
import org.springframework.data.domain.Pageable;
77
import org.springframework.data.domain.Sort;
8-
import org.springframework.scheduling.annotation.Async;
98
import org.springframework.stereotype.Controller;
109
import org.springframework.ui.Model;
1110
import org.springframework.web.bind.annotation.PathVariable;
@@ -18,7 +17,7 @@
1817
import org.woehlke.twitterwall.oodm.entities.TaskHistory;
1918
import org.woehlke.twitterwall.oodm.service.TaskHistoryService;
2019
import org.woehlke.twitterwall.oodm.service.TaskService;
21-
import org.woehlke.twitterwall.scheduled.mq.endoint.StartTask;
20+
import org.woehlke.twitterwall.scheduled.mq.endoint.AsyncStartTask;
2221

2322
/**
2423
* Created by tw on 11.07.17.
@@ -63,7 +62,7 @@ public String fetchTweetsFromTwitterSearchRequest(Model model) {
6362
String subtitle = "/scheduled/tweets/fetch";
6463
String symbol = Symbols.TASK.toString();
6564
model = controllerHelper.setupPage(model,title,subtitle,symbol);
66-
this.fetchTweetsFromTwitterSearch();
65+
mqAsyncStartTask.fetchUsersFromDefinedUserList();
6766
return "scheduled/taskStarted";
6867
}
6968

@@ -74,7 +73,7 @@ public String updateTweetsRequest(Model model) {
7473
String subtitle = "/scheduled/tweets/fetch";
7574
String symbol = Symbols.TASK.toString();
7675
model = controllerHelper.setupPage(model,title,subtitle,symbol);
77-
this.updateTweets();
76+
mqAsyncStartTask.updateTweets();
7877
return "scheduled/taskStarted";
7978
}
8079

@@ -85,7 +84,7 @@ public String fetchUsersFromDefinedUserListRequest(Model model){
8584
String subtitle = "/scheduled/users/list/fetch";
8685
String symbol = Symbols.TASK.toString();
8786
model = controllerHelper.setupPage(model,title,subtitle,symbol);
88-
this.fetchUsersFromDefinedUserList();
87+
mqAsyncStartTask.fetchUsersFromDefinedUserList();
8988
return "scheduled/taskStarted";
9089
}
9190

@@ -96,7 +95,7 @@ public String updateUserProfilesFromMentionsRequest(Model model){
9695
String subtitle = "/scheduled/users/mentions/update";
9796
String symbol = Symbols.TASK.toString();
9897
model = controllerHelper.setupPage(model,title,subtitle,symbol);
99-
this.updateUserProfilesFromMentions();
98+
mqAsyncStartTask.updateUserProfilesFromMentions();
10099
return "scheduled/taskStarted";
101100
}
102101

@@ -107,35 +106,10 @@ public String updateUserProfilesRequest(Model model) {
107106
String subtitle = "/scheduled/users/update";
108107
String symbol = Symbols.TASK.toString();
109108
model = controllerHelper.setupPage(model,title,subtitle,symbol);
110-
this.updateUserProfiles();
109+
mqAsyncStartTask.updateUserProfiles();
111110
return "scheduled/taskStarted";
112111
}
113112

114-
@Async
115-
protected void fetchTweetsFromTwitterSearch() {
116-
startTask.fetchTweetsFromTwitterSearch();
117-
}
118-
119-
@Async
120-
protected void updateTweets() {
121-
startTask.updateTweets();
122-
}
123-
124-
@Async
125-
protected void fetchUsersFromDefinedUserList(){
126-
startTask.fetchUsersFromDefinedUserList();
127-
}
128-
129-
@Async
130-
protected void updateUserProfilesFromMentions(){
131-
startTask.updateUserProfilesFromMentions();
132-
}
133-
134-
@Async
135-
protected void updateUserProfiles() {
136-
startTask.updateUserProfiles();
137-
}
138-
139113
private final TaskService taskService;
140114

141115
private final TaskHistoryService taskHistoryService;
@@ -144,14 +118,14 @@ protected void updateUserProfiles() {
144118

145119
private final ControllerHelper controllerHelper;
146120

147-
private final StartTask startTask;
121+
private final AsyncStartTask mqAsyncStartTask;
148122

149123
@Autowired
150-
public TaskController(TaskService taskService, TaskHistoryService taskHistoryService, TwitterwallFrontendProperties twitterwallFrontendProperties, ControllerHelper controllerHelper, StartTask startTask) {
124+
public TaskController(TaskService taskService, TaskHistoryService taskHistoryService, TwitterwallFrontendProperties twitterwallFrontendProperties, ControllerHelper controllerHelper, AsyncStartTask mqAsyncStartTask) {
151125
this.taskService = taskService;
152126
this.taskHistoryService = taskHistoryService;
153127
this.twitterwallFrontendProperties = twitterwallFrontendProperties;
154128
this.controllerHelper = controllerHelper;
155-
this.startTask = startTask;
129+
this.mqAsyncStartTask = mqAsyncStartTask;
156130
}
157131
}

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

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import org.springframework.data.domain.Page;
77
import org.springframework.data.domain.PageRequest;
88
import org.springframework.data.domain.Pageable;
9-
import org.springframework.scheduling.annotation.Async;
109
import org.springframework.stereotype.Controller;
1110
import org.springframework.ui.Model;
1211
import org.springframework.web.bind.annotation.RequestMapping;
@@ -17,6 +16,7 @@
1716
import org.woehlke.twitterwall.frontend.controller.common.ControllerHelper;
1817
import org.woehlke.twitterwall.oodm.entities.User;
1918
import org.woehlke.twitterwall.oodm.service.UserService;
19+
import org.woehlke.twitterwall.scheduled.mq.endoint.AsyncStartTask;
2020
import org.woehlke.twitterwall.scheduled.mq.endoint.StartTask;
2121

2222

@@ -33,8 +33,8 @@ public String getTestData(Model model) {
3333
model = controllerHelper.setupPage(model,"Test Data Tweets",twitterProperties.getSearchQuery(),Symbols.GET_TEST_DATA.toString());
3434
String msg = "/getTestData : ";
3535
if(twitterwallFrontendProperties.getContextTest()){
36-
model.addAttribute("latestTweets", startTask.createTestDataForTweets());
37-
model.addAttribute("users", startTask.createTestDataForUser());
36+
model.addAttribute("latestTweets", mqStartTask.createTestDataForTweets());
37+
model.addAttribute("users", mqStartTask.createTestDataForUser());
3838
} else {
3939
model.addAttribute("latestTweets",null);
4040
model.addAttribute("users",null);
@@ -46,7 +46,9 @@ public String getTestData(Model model) {
4646
public String getOnListRenew(@RequestParam(name= "page" ,defaultValue=""+ ControllerHelper.FIRST_PAGE_NUMBER) int page, Model model) {
4747
Pageable pageRequest = new PageRequest(page, twitterwallFrontendProperties.getPageSize());
4848
String msg = "getOnListRenew: ";
49-
this.startOnListRenew();
49+
log.info(msg+"START startTask.fetchUsersFromDefinedUserList: ");
50+
mqAsyncStartTask.fetchUsersFromDefinedUserList();
51+
log.info(msg+"DONE startTask.fetchUsersFromDefinedUserList: ");
5052
log.info(msg+"START userService.findOnList(): ");
5153
Page<User> usersOnList = userService.getOnList(pageRequest);
5254
log.info(msg+"DONE userService.findOnList(): ");
@@ -67,22 +69,18 @@ public String getOnListRenew(@RequestParam(name= "page" ,defaultValue=""+ Contro
6769

6870
private final TwitterProperties twitterProperties;
6971

70-
private final StartTask startTask;
72+
private final AsyncStartTask mqAsyncStartTask;
73+
74+
private final StartTask mqStartTask;
7175

7276
@Autowired
73-
public TestController(UserService userService, ControllerHelper controllerHelper, TwitterwallFrontendProperties twitterwallFrontendProperties, TwitterProperties twitterProperties, StartTask startTask) {
77+
public TestController(UserService userService, ControllerHelper controllerHelper, TwitterwallFrontendProperties twitterwallFrontendProperties, TwitterProperties twitterProperties, AsyncStartTask mqAsyncStartTask, StartTask mqStartTask) {
7478
this.userService = userService;
7579
this.controllerHelper = controllerHelper;
7680
this.twitterwallFrontendProperties = twitterwallFrontendProperties;
7781
this.twitterProperties = twitterProperties;
78-
this.startTask = startTask;
82+
this.mqAsyncStartTask = mqAsyncStartTask;
83+
this.mqStartTask = mqStartTask;
7984
}
8085

81-
@Async
82-
protected void startOnListRenew(){
83-
String msg = "startOnListRenew: ";
84-
log.info(msg+"START startTask.fetchUsersFromDefinedUserList: ");
85-
startTask.fetchUsersFromDefinedUserList();
86-
log.info(msg+"DONE startTask.fetchUsersFromDefinedUserList: ");
87-
}
8886
}

src/main/java/org/woehlke/twitterwall/oodm/service/TaskService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,9 @@ public interface TaskService extends DomainObjectMinimalService<Task> {
3131
Task error(Task task, String msg,CountedEntities countedEntities);
3232

3333
Task start(Task task,CountedEntities countedEntities);
34+
35+
Task finalError(Task task, String s, CountedEntities countedEntities);
36+
37+
Task done(String logMsg, Task task, CountedEntities countedEntities);
38+
3439
}

src/main/java/org/woehlke/twitterwall/oodm/service/impl/TaskServiceImpl.java

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public Task done(Task task,CountedEntities countedEntities) {
7272
task.setTaskStatus(TaskStatus.FINISHED);
7373
task.setTimeLastUpdate(new Date());
7474
task = taskRepository.save(task);
75-
TaskHistory event = new TaskHistory("done",task.getTaskStatus(),TaskStatus.FINISHED,countedEntities);
75+
TaskHistory event = new TaskHistory("DONE ",task.getTaskStatus(),TaskStatus.FINISHED,countedEntities);
7676
event.setIdTask(task.getId());
7777
event.setTask(task);
7878
event = taskHistoryRepository.save(event);
@@ -175,7 +175,33 @@ public Task start(Task task,CountedEntities countedEntities) {
175175
task.setTaskStatus(TaskStatus.RUNNING);
176176
task.setTimeLastUpdate(new Date());
177177
task = taskRepository.save(task);
178-
TaskHistory event = new TaskHistory("start",task.getTaskStatus(),TaskStatus.RUNNING,countedEntities);
178+
TaskHistory event = new TaskHistory("START",task.getTaskStatus(),TaskStatus.RUNNING,countedEntities);
179+
event.setIdTask(task.getId());
180+
event.setTask(task);
181+
event = taskHistoryRepository.save(event);
182+
log.debug(task.toString());
183+
return task;
184+
}
185+
186+
@Override
187+
public Task finalError(Task task, String msg, CountedEntities countedEntities) {
188+
task.setTaskStatus(TaskStatus.ERROR);
189+
task.setTimeLastUpdate(new Date());
190+
task = taskRepository.save(task);
191+
TaskHistory event = new TaskHistory("FINAL ERROR: "+msg,task.getTaskStatus(),TaskStatus.ERROR,countedEntities);
192+
event.setIdTask(task.getId());
193+
event.setTask(task);
194+
event = taskHistoryRepository.save(event);
195+
log.debug(task.toString());
196+
return task;
197+
}
198+
199+
@Override
200+
public Task done(String logMsg, Task task, CountedEntities countedEntities) {
201+
task.setTaskStatus(TaskStatus.FINISHED);
202+
task.setTimeLastUpdate(new Date());
203+
task = taskRepository.save(task);
204+
TaskHistory event = new TaskHistory("DONE "+logMsg,task.getTaskStatus(),TaskStatus.FINISHED,countedEntities);
179205
event.setIdTask(task.getId());
180206
event.setTask(task);
181207
event = taskHistoryRepository.save(event);
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package org.woehlke.twitterwall.scheduled.mq.channel;
2+
3+
public enum SenderType {
4+
SEND_AND_WAIT_FOR_RESULT_SENDER,
5+
FIRE_AND_FORGET_SENDER
6+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.woehlke.twitterwall.scheduled.mq.endoint;
2+
3+
public interface AsyncStartTask {
4+
5+
void updateTweets();
6+
7+
void updateUserProfiles();
8+
9+
void updateUserProfilesFromMentions();
10+
11+
void fetchTweetsFromTwitterSearch();
12+
13+
void fetchUsersFromDefinedUserList();
14+
15+
}

src/main/java/org/woehlke/twitterwall/scheduled/mq/endoint/FetchDataFromDatabase.java

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/main/java/org/woehlke/twitterwall/scheduled/mq/endoint/FetchDataFromRemoteTwitterApi.java

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/main/java/org/woehlke/twitterwall/scheduled/mq/endoint/StartTask.java

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,7 @@
55

66
import java.util.List;
77

8-
public interface StartTask {
9-
10-
void fetchTweetsFromTwitterSearch();
11-
12-
void updateTweets();
13-
14-
void updateUserProfiles();
15-
16-
void updateUserProfilesFromMentions();
17-
18-
void fetchUsersFromDefinedUserList();
8+
public interface StartTask extends AsyncStartTask {
199

2010
User createImprintUser();
2111

src/main/java/org/woehlke/twitterwall/scheduled/mq/endoint/TweetFinisher.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,8 @@
77
import java.util.List;
88

99
public interface TweetFinisher {
10+
1011
TweetResultList finish(Message<List<TweetFromTwitter>> incomingMessageList);
12+
13+
void finishAsnyc(Message<List<TweetFromTwitter>> incomingMessageList);
1114
}

0 commit comments

Comments
 (0)