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 f6e3666368d70fc3c3c0a33b9e8d345e7e76646d..8bd0c1eee553e6c805629055a5a8e3d5d49a6523 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 18c312763df0590dd7ba2e25df413cc118735edb..266c713c768568b3b1638701d4dd29ecbd62bec5 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) {