Skip to content

Commit 5227fcd

Browse files
fixed #239
1 parent d47f492 commit 5227fcd

33 files changed

+508
-53
lines changed

src/main/java/org/woehlke/twitterwall/ScheduledTasks.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,17 @@ public void fetchUsersFromDefinedUserList(){
3333
}
3434
}
3535

36-
@Scheduled(initialDelay= TEN_SECONDS *3, fixedRate = FIXED_RATE_FOR_SCHEDULAR_REMOVE_OLD_DATA_FROM_STORAGE)
36+
@Scheduled(initialDelay= TEN_SECONDS *3, fixedRate = FIXED_RATE_FOR_SCHEDULAR_FETCH_USER_LIST)
37+
public void fetchFollower(){
38+
String msg = "fetch Follower ";
39+
if(schedulerProperties.getFetchFollowerAllow() && ! schedulerProperties.getSkipFortesting()) {
40+
Task task = asyncStartTask.fetchFollower();
41+
log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
42+
}
43+
}
44+
45+
46+
@Scheduled(initialDelay= TEN_SECONDS *4, fixedRate = FIXED_RATE_FOR_SCHEDULAR_REMOVE_OLD_DATA_FROM_STORAGE)
3747
public void removeOldDataFromStorage(){
3848
String msg = "remove Old Data From Storage: ";
3949
if(schedulerProperties.getRemoveOldDataFromStorageAllow() && !schedulerProperties.getSkipFortesting()) {
@@ -42,7 +52,7 @@ public void removeOldDataFromStorage(){
4252
}
4353
}
4454

45-
@Scheduled(initialDelay= TEN_SECONDS *4, fixedRate = FIXED_RATE_FOR_SCHEDULAR_UPDATE_USER_BY_MENTION)
55+
@Scheduled(initialDelay= TEN_SECONDS *5, fixedRate = FIXED_RATE_FOR_SCHEDULAR_UPDATE_USER_BY_MENTION)
4656
public void updateUserProfilesFromMentions(){
4757
String msg = "update User Profiles From Mentions";
4858
if(schedulerProperties.getAllowUpdateUserProfilesFromMention() && !schedulerProperties.getSkipFortesting()) {
@@ -51,7 +61,7 @@ public void updateUserProfilesFromMentions(){
5161
}
5262
}
5363

54-
@Scheduled(initialDelay= TEN_SECONDS *5, fixedRate = FIXED_RATE_FOR_SCHEDULAR_UPDATE_TWEETS)
64+
@Scheduled(initialDelay= TEN_SECONDS *6, fixedRate = FIXED_RATE_FOR_SCHEDULAR_UPDATE_TWEETS)
5565
public void updateTweets() {
5666
String msg = "update Tweets ";
5767
if(schedulerProperties.getAllowUpdateTweets() && !schedulerProperties.getSkipFortesting()){
@@ -60,7 +70,7 @@ public void updateTweets() {
6070
}
6171
}
6272

63-
@Scheduled(initialDelay= TEN_SECONDS *6, fixedRate = FIXED_RATE_FOR_SCHEDULAR_UPDATE_USER)
73+
@Scheduled(initialDelay= TEN_SECONDS *7, fixedRate = FIXED_RATE_FOR_SCHEDULAR_UPDATE_USER)
6474
public void updateUserProfiles() {
6575
String msg = "update User Profiles ";
6676
if(schedulerProperties.getAllowUpdateUserProfiles() && !schedulerProperties.getSkipFortesting()) {

src/main/java/org/woehlke/twitterwall/conf/properties/SchedulerProperties.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ public class SchedulerProperties {
3939
@NotNull
4040
private Boolean removeOldDataFromStorageAllow;
4141

42+
@NotNull
43+
private Boolean fetchFollowerAllow;
44+
4245
public Boolean getAllowFetchTweetsFromTwitterSearch() {
4346
return allowFetchTweetsFromTwitterSearch;
4447
}
@@ -110,4 +113,12 @@ public Boolean getRemoveOldDataFromStorageAllow() {
110113
public void setRemoveOldDataFromStorageAllow(Boolean removeOldDataFromStorageAllow) {
111114
this.removeOldDataFromStorageAllow = removeOldDataFromStorageAllow;
112115
}
116+
117+
public void setFetchFollowerAllow(Boolean fetchFollowerAllow) {
118+
this.fetchFollowerAllow = fetchFollowerAllow;
119+
}
120+
121+
public Boolean getFetchFollowerAllow() {
122+
return fetchFollowerAllow;
123+
}
113124
}

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,18 @@ public String fetchUsersFromDefinedUserListStartTask(Model model){
147147
return PATH+"/start/taskStarted";
148148
}
149149

150+
@RequestMapping(path="/start/users/follower/fetch")
151+
public String fetchFollowerStartTask(Model model){
152+
String msg = "/start/users/follower/fetch";
153+
String title = "Scheduled Task started";
154+
String subtitle = "/start/users/follower/fetch";
155+
String symbol = Symbols.TASK.toString();
156+
model = controllerHelper.setupPage(model,title,subtitle,symbol);
157+
Task task = mqAsyncStartTask.fetchFollower();
158+
model.addAttribute("task",task);
159+
return PATH+"/start/taskStarted";
160+
}
161+
150162
@RequestMapping(path="/start/users/mentions/update")
151163
public String updateUserProfilesFromMentionsStartTask(Model model){
152164
String msg = "/start/users/mentions/update";

src/main/java/org/woehlke/twitterwall/oodm/entities/User.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,6 @@
8686
name = "User.findAllDescriptions",
8787
query = "select t.description from User as t where t.description is not null"
8888
),
89-
@NamedQuery(
90-
name = "User.findAllTwitterIds",
91-
query = "select t.idTwitter from User as t"
92-
),
9389
@NamedQuery(
9490
name="User.findByUniqueId",
9591
query="select t from User as t where t.idTwitter=:idTwitter and t.screenNameUnique=:screenNameUnique"
@@ -304,7 +300,7 @@ public User(Task createdBy, Task updatedBy, long idTwitter, String screenName, S
304300
}
305301
}
306302

307-
private User() {
303+
protected User() {
308304
}
309305

310306
@Transient

src/main/java/org/woehlke/twitterwall/oodm/entities/parts/TaskType.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public enum TaskType {
88
NULL,
99
FETCH_TWEETS_FROM_SEARCH,
1010
FETCH_USERS_FROM_LIST,
11+
FETCH_FOLLOWER,
1112
UPDATE_TWEETS,
1213
UPDATE_USERS,
1314
UPDATE_USERS_FROM_MENTIONS,

src/main/java/org/woehlke/twitterwall/oodm/entities/parts/TwitterApiCaching.java

Lines changed: 44 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ public class TwitterApiCaching implements Serializable {
3939
@Column(name=COLUMN_PREFIX+"controller_create_imprint_user")
4040
private Date controllerCreateImprintUser;
4141

42+
@Column(name=COLUMN_PREFIX+"remove_old_data_from_storage")
43+
private Date removeOldDataFromStorage;
44+
45+
@Column(name=COLUMN_PREFIX+"fetch_follower")
46+
private Date fetchFollower;
47+
4248
@Transient
4349
public Boolean isCached(TaskType taskType, long timeToLive){
4450
Date lastApiCall = null;
@@ -70,6 +76,12 @@ public Boolean isCached(TaskType taskType, long timeToLive){
7076
case CONTROLLER_CREATE_IMPRINT_USER:
7177
lastApiCall = controllerCreateImprintUser;
7278
break;
79+
case REMOVE_OLD_DATA_FROM_STORAGE:
80+
lastApiCall = removeOldDataFromStorage;
81+
break;
82+
case FETCH_FOLLOWER:
83+
lastApiCall = fetchFollower;
84+
break;
7385
default: break;
7486
}
7587
if(lastApiCall == null){
@@ -110,11 +122,17 @@ public void store(TaskType taskType){
110122
case CONTROLLER_CREATE_IMPRINT_USER:
111123
controllerCreateImprintUser = lastApiCall;
112124
break;
125+
case REMOVE_OLD_DATA_FROM_STORAGE:
126+
removeOldDataFromStorage = lastApiCall;
127+
break;
128+
case FETCH_FOLLOWER:
129+
fetchFollower = lastApiCall;
130+
break;
113131
default: break;
114132
}
115133
}
116134

117-
public TwitterApiCaching(Date fetchTweetsFromTwitterSearch, Date updateTweets, Date updateUserProfiles, Date updateUserProfilesFromMentions, Date fetchUsersFromDefinedUserList, Date controllerGetTestdataTweets, Date controllerGetTestdataUser, Date controllerAddUserForScreenName, Date controllerCreateImprintUser) {
135+
public TwitterApiCaching(Date fetchTweetsFromTwitterSearch, Date updateTweets, Date updateUserProfiles, Date updateUserProfilesFromMentions, Date fetchUsersFromDefinedUserList, Date controllerGetTestdataTweets, Date controllerGetTestdataUser, Date controllerAddUserForScreenName, Date controllerCreateImprintUser, Date removeOldDataFromStorage,Date fetchFollower) {
118136
this.fetchTweetsFromTwitterSearch = fetchTweetsFromTwitterSearch;
119137
this.updateTweets = updateTweets;
120138
this.updateUserProfiles = updateUserProfiles;
@@ -124,6 +142,8 @@ public TwitterApiCaching(Date fetchTweetsFromTwitterSearch, Date updateTweets, D
124142
this.controllerGetTestdataUser = controllerGetTestdataUser;
125143
this.controllerAddUserForScreenName = controllerAddUserForScreenName;
126144
this.controllerCreateImprintUser = controllerCreateImprintUser;
145+
this.removeOldDataFromStorage = removeOldDataFromStorage;
146+
this.fetchFollower = fetchFollower;
127147
}
128148

129149
public TwitterApiCaching() {
@@ -136,6 +156,8 @@ public TwitterApiCaching() {
136156
this.controllerGetTestdataUser = null;
137157
this.controllerAddUserForScreenName = null;
138158
this.controllerCreateImprintUser = null;
159+
this.removeOldDataFromStorage = null;
160+
this.fetchFollower = null;
139161
}
140162

141163
public Date getFetchTweetsFromTwitterSearch() {
@@ -174,6 +196,14 @@ public Date getControllerCreateImprintUser() {
174196
return controllerCreateImprintUser;
175197
}
176198

199+
public Date getRemoveOldDataFromStorage() {
200+
return removeOldDataFromStorage;
201+
}
202+
203+
public Date getFetchFollower() {
204+
return fetchFollower;
205+
}
206+
177207
@Override
178208
public boolean equals(Object o) {
179209
if (this == o) return true;
@@ -196,7 +226,11 @@ public boolean equals(Object o) {
196226
return false;
197227
if (controllerAddUserForScreenName != null ? !controllerAddUserForScreenName.equals(that.controllerAddUserForScreenName) : that.controllerAddUserForScreenName != null)
198228
return false;
199-
return controllerCreateImprintUser != null ? controllerCreateImprintUser.equals(that.controllerCreateImprintUser) : that.controllerCreateImprintUser == null;
229+
if (controllerCreateImprintUser != null ? !controllerCreateImprintUser.equals(that.controllerCreateImprintUser) : that.controllerCreateImprintUser != null)
230+
return false;
231+
if (removeOldDataFromStorage != null ? !removeOldDataFromStorage.equals(that.removeOldDataFromStorage) : that.removeOldDataFromStorage != null)
232+
return false;
233+
return fetchFollower != null ? fetchFollower.equals(that.fetchFollower) : that.fetchFollower == null;
200234
}
201235

202236
@Override
@@ -210,21 +244,25 @@ public int hashCode() {
210244
result = 31 * result + (controllerGetTestdataUser != null ? controllerGetTestdataUser.hashCode() : 0);
211245
result = 31 * result + (controllerAddUserForScreenName != null ? controllerAddUserForScreenName.hashCode() : 0);
212246
result = 31 * result + (controllerCreateImprintUser != null ? controllerCreateImprintUser.hashCode() : 0);
247+
result = 31 * result + (removeOldDataFromStorage != null ? removeOldDataFromStorage.hashCode() : 0);
248+
result = 31 * result + (fetchFollower != null ? fetchFollower.hashCode() : 0);
213249
return result;
214250
}
215251

216252
@Override
217253
public String toString() {
218254
return "TwitterApiCaching{" +
219-
"fetchTweetsFromSearch=" + fetchTweetsFromTwitterSearch +
255+
"fetchTweetsFromTwitterSearch=" + fetchTweetsFromTwitterSearch +
220256
", updateTweets=" + updateTweets +
221-
", updateUsers=" + updateUserProfiles +
222-
", updateUsersFromMentions=" + updateUserProfilesFromMentions +
223-
", fetchUsersFromList=" + fetchUsersFromDefinedUserList +
257+
", updateUserProfiles=" + updateUserProfiles +
258+
", updateUserProfilesFromMentions=" + updateUserProfilesFromMentions +
259+
", fetchUsersFromDefinedUserList=" + fetchUsersFromDefinedUserList +
224260
", controllerGetTestdataTweets=" + controllerGetTestdataTweets +
225261
", controllerGetTestdataUser=" + controllerGetTestdataUser +
226262
", controllerAddUserForScreenName=" + controllerAddUserForScreenName +
227263
", controllerCreateImprintUser=" + controllerCreateImprintUser +
264+
", removeOldDataFromStorage=" + removeOldDataFromStorage +
265+
", fetchFollower=" + fetchFollower +
228266
'}';
229267
}
230268

src/main/java/org/woehlke/twitterwall/oodm/repositories/UserRepository.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,6 @@ public interface UserRepository extends DomainRepository<User>,UserRepositoryCus
4545
@Query(name="User.findAllDescriptions")
4646
Page<String> findAllDescriptions(Pageable pageRequest);
4747

48-
@Query(name="User.findAllTwitterIds")
49-
Page<Long> findAllTwitterIds(Pageable pageRequest);
50-
5148
@Query(
5249
name="User.getUsersForHashTag",
5350
countName = "User.countUsersForHashTag"

src/main/java/org/woehlke/twitterwall/oodm/repositories/custom/impl/TaskRepositoryImpl.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ public void deleteAllDomainData() {
5252
"delete from tweet_media",
5353
"delete from tweet_hashtag",
5454
"delete from tweet_url",
55-
"delete from url_cache",
5655
"delete from url",
5756
"delete from tickersymbol",
5857
"delete from mention",

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ public interface UserService extends DomainObjectWithEntitiesService<User>,Domai
2020

2121
Page<String> getAllDescriptions(Pageable pageRequest);
2222

23-
//Page<Long> getAllTwitterIds(Pageable pageRequest);
24-
2523
Page<User> getUsersForHashTag(HashTag hashTag,Pageable pageRequest);
2624

2725
Page<User> getFriends(Pageable pageRequest);
@@ -46,4 +44,5 @@ public interface UserService extends DomainObjectWithEntitiesService<User>,Domai
4644

4745
Page<Object2Entity> findAllUser2TickerSymbol(Pageable pageRequest);
4846

47+
boolean isByIdTwitter(long userIdTwitter);
4948
}

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

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,6 @@ public Page<String> getAllDescriptions(Pageable pageRequest) {
7676
return userRepository.findAllDescriptions(pageRequest);
7777
}
7878

79-
/*
80-
@Override
81-
public Page<Long> getAllTwitterIds(Pageable pageRequest) {
82-
return userRepository.findAllTwitterIds(pageRequest);
83-
}
84-
*/
85-
8679
@Override
8780
public Page<User> getUsersForHashTag(HashTag hashTag, Pageable pageRequest) {
8881
return userRepository.findUsersForHashTag(hashTag.getText(),pageRequest);
@@ -128,4 +121,9 @@ public Page<Object2Entity> findAllUser2TickerSymbol(Pageable pageRequest){
128121
return userRepository.findAllUser2TickerSymbol(pageRequest);
129122
}
130123

124+
@Override
125+
public boolean isByIdTwitter(long userIdTwitter) {
126+
return ((userRepository.findByIdTwitter(userIdTwitter)) != null);
127+
}
128+
131129
}

0 commit comments

Comments
 (0)