Skip to content
Snippets Groups Projects
Commit da1269ba authored by Benoit Lavenier's avatar Benoit Lavenier
Browse files

ES: subscriptions: add log when start/end execution

parent 886e6e71
No related branches found
No related tags found
No related merge requests found
......@@ -84,19 +84,19 @@ public class PluginSettings extends AbstractLifecycleComponent<PluginSettings> {
}
/**
* Day of the week to trigger weekly email subscription (default: 1)
* Day of the week to trigger weekly email subscription (default: 2 = monday)
* @return
*/
public int getEmailSubscriptionsExecuteDayOfWeek() {
return settings.getAsInt("duniter.subscription.email.dayOfWeek", 1);
return settings.getAsInt("duniter.subscription.email.dayOfWeek", 2);
}
/**
* Hour in day to trigger daily email subscription (default: 4 AM)
* Hour in day to trigger daily email subscription (default: 3 AM)
* @return
*/
public int getEmailSubscriptionsExecuteHour() {
return settings.getAsInt("duniter.subscription.email.hourOfDay", 4) /*4 hour in the morning*/;
return settings.getAsInt("duniter.subscription.email.hourOfDay", 3);
}
/* -- delegate methods -- */
......
......@@ -131,10 +131,6 @@ public class SubscriptionService extends AbstractService {
return this;
}
// Startup Start
threadPool.schedule(() -> executeEmailSubscriptions(EmailSubscription.Frequency.daily));
// Daily execution
threadPool.scheduler().scheduleAtFixedRate(
() -> executeEmailSubscriptions(EmailSubscription.Frequency.daily),
......@@ -152,12 +148,15 @@ public class SubscriptionService extends AbstractService {
public void executeEmailSubscriptions(final EmailSubscription.Frequency frequency) {
long now = System.currentTimeMillis();
logger.info(String.format("Executing %s email subscription...", frequency.name()));
final String senderPubkey = pluginSettings.getNodePubkey();
int from = 0;
int size = 10;
boolean hasMore = true;
long executionCount=0;
while (hasMore) {
List<SubscriptionRecord> subscriptions = subscriptionRecordDao.getSubscriptions(from, size, senderPubkey, EmailSubscription.TYPE);
......@@ -171,16 +170,21 @@ public class SubscriptionService extends AbstractService {
final String senderName = (profileTitles != null && profileTitles.containsKey(senderPubkey)) ? profileTitles.get(senderPubkey) :
ModelUtils.minifyPubkey(senderPubkey);
subscriptions.parallelStream()
executionCount += subscriptions.stream()
.map(record -> decryptEmailSubscription((EmailSubscription)record))
.filter(record -> (record != null && record.getContent().getFrequency() == frequency))
.map(record -> processEmailSubscription(record, senderPubkey, senderName, profileTitles))
.filter(Objects::nonNull)
.forEach(this::saveExecution);
.map(this::saveExecution)
.count();
hasMore = CollectionUtils.size(subscriptions) >= size;
from += size;
}
logger.info(String.format("Executing %s email subscription... [OK] (%s executions in %s ms)",
frequency.name(), executionCount, System.currentTimeMillis()-now));
}
/* -- protected methods -- */
......@@ -347,7 +351,7 @@ public class SubscriptionService extends AbstractService {
}
}
protected void saveExecution(SubscriptionExecution execution) {
protected SubscriptionExecution saveExecution(SubscriptionExecution execution) {
Preconditions.checkNotNull(execution);
Preconditions.checkNotNull(execution.getRecipient());
Preconditions.checkNotNull(execution.getRecordType());
......@@ -368,6 +372,7 @@ public class SubscriptionService extends AbstractService {
else {
subscriptionExecutionDao.update(execution.getId(), json, false/*not wait*/);
}
return execution;
}
private String toJson(Record record) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment