From da1269ba30935422bb7369adc0c267aaee54fdfe Mon Sep 17 00:00:00 2001 From: blavenie <benoit.lavenier@e-is.pro> Date: Tue, 11 Apr 2017 09:28:39 +0200 Subject: [PATCH] ES: subscriptions: add log when start/end execution --- .../subscription/PluginSettings.java | 8 +++---- .../service/SubscriptionService.java | 21 ++++++++++++------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/duniter4j-es-subscription/src/main/java/org/duniter/elasticsearch/subscription/PluginSettings.java b/duniter4j-es-subscription/src/main/java/org/duniter/elasticsearch/subscription/PluginSettings.java index f6e36663..8bd0c1ee 100644 --- a/duniter4j-es-subscription/src/main/java/org/duniter/elasticsearch/subscription/PluginSettings.java +++ b/duniter4j-es-subscription/src/main/java/org/duniter/elasticsearch/subscription/PluginSettings.java @@ -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 -- */ diff --git a/duniter4j-es-subscription/src/main/java/org/duniter/elasticsearch/subscription/service/SubscriptionService.java b/duniter4j-es-subscription/src/main/java/org/duniter/elasticsearch/subscription/service/SubscriptionService.java index 18c31276..266c713c 100644 --- a/duniter4j-es-subscription/src/main/java/org/duniter/elasticsearch/subscription/service/SubscriptionService.java +++ b/duniter4j-es-subscription/src/main/java/org/duniter/elasticsearch/subscription/service/SubscriptionService.java @@ -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) { -- GitLab