Skip to content

Commit ac8fc86

Browse files
authored
Merge pull request #104 from FenixEdu/feature/FMSG-61
Don't prune messages inside dispatch script FMSG-61 #resolve
2 parents 0bfdd56 + f9d95b4 commit ac8fc86

File tree

1 file changed

+12
-29
lines changed

1 file changed

+12
-29
lines changed

messaging-core/src/main/java/org/fenixedu/messaging/core/task/MessageTask.java

Lines changed: 12 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,44 +5,27 @@
55
import org.fenixedu.messaging.core.domain.Message;
66
import org.fenixedu.messaging.core.domain.MessageDispatchReport;
77
import org.fenixedu.messaging.core.domain.MessagingSystem;
8-
import org.fenixedu.messaging.core.domain.Sender;
9-
10-
import java.util.HashSet;
11-
import java.util.Set;
128

139
@Task(englishTitle = "Message Task", readOnly = true)
1410
public class MessageTask extends CronTask {
1511
@Override
1612
public void runTask() {
17-
Set<Sender> sendersFromMessages = new HashSet<>();
18-
int dispatched = 0;
19-
for (final Message message : MessagingSystem.getPendingMessages()) {
20-
long start = System.currentTimeMillis();
21-
MessageDispatchReport report = MessagingSystem.dispatch(message);
22-
if (report != null) {
23-
getLogger().info("Dispatched message: {} in {}ms for {} addresses", message.getExternalId(), System
24-
.currentTimeMillis() - start, report.getTotalCount());
25-
dispatched++;
26-
sendersFromMessages.add(message.getSender());
27-
}
28-
}
13+
final long dispatched = MessagingSystem.getPendingMessages().stream()
14+
.mapToLong(this::dispatch)
15+
.count();
2916
if (dispatched > 0) {
3017
taskLog("Dispatched %d messages\n", dispatched);
3118
}
19+
}
3220

33-
taskLog("%d possible senders to prune%n", sendersFromMessages.size());
34-
int pruned = 0;
35-
for (Sender sender : sendersFromMessages){
36-
int diff = sender.getMessageSet().size();
37-
sender.pruneMessages();
38-
diff = diff - sender.getMessageSet().size();
39-
if (diff > 0) {
40-
getLogger().info("Pruned sender: {} for {} messages", sender.getExternalId(), diff);
41-
pruned += diff;
42-
}
43-
}
44-
if (pruned > 0) {
45-
taskLog("Pruned %d messages\n", pruned);
21+
private long dispatch(final Message message) {
22+
final long start = System.currentTimeMillis();
23+
final MessageDispatchReport report = MessagingSystem.dispatch(message);
24+
if (report != null) {
25+
getLogger().info("Dispatched message: {} in {}ms for {} addresses", message.getExternalId(), System
26+
.currentTimeMillis() - start, report.getTotalCount());
27+
return 1;
4628
}
29+
return 0;
4730
}
4831
}

0 commit comments

Comments
 (0)