diff --git a/staffeln/conductor/manager.py b/staffeln/conductor/manager.py
index 6cd5bba..cd19a69 100755
--- a/staffeln/conductor/manager.py
+++ b/staffeln/conductor/manager.py
@@ -1,4 +1,4 @@
-from datetime import datetime, timezone
+from datetime import datetime, timezone, timedelta
 import threading
 import time
 
@@ -125,8 +125,19 @@
         self.controller.create_queue(current_tasks)
 
     def _report_backup_result(self):
-        self.controller.publish_backup_result()
-        self.controller.purge_backups()
+        report_period_mins = CONF.conductor.report_period
+        threshold_strtime = datetime.now(timezone.utc) - timedelta(minutes=report_period_mins)
+        filters={
+            "created_at__lt": threshold_strtime,
+            "backup_status": constants.BACKUP_COMPLETED
+        }
+        success_tasks = self.controller.get_queues(filters=filters)
+        filters['backup_status'] = constants.BACKUP_FAILED
+        failed_tasks = self.controller.get_queues(filters=filters)
+        if success_tasks or failed_tasks:
+            self.controller.publish_backup_result()
+            # Purge backup queue tasks
+            self.controller.purge_backups()
 
     def backup_engine(self, backup_service_period):
         LOG.info("Backup manager started %s" % str(time.time()))
diff --git a/staffeln/conductor/result.py b/staffeln/conductor/result.py
index a1587d8..df47a19 100644
--- a/staffeln/conductor/result.py
+++ b/staffeln/conductor/result.py
@@ -52,22 +52,22 @@
         backup_mgt = backup.Backup()
         project_success = {}
         project_failed = {}
-        success_queues = backup_mgt.get_queues(
+        success_tasks = backup_mgt.get_queues(
             filters={"backup_status": constants.BACKUP_COMPLETED}
         )
-        for queue in success_queues:
-            if queue.project_id in project_success:
-                project_success[queue.project_id].append(queue)
+        for task in success_tasks:
+            if task.project_id in project_success:
+                project_success[task.project_id].append(task)
             else:
-                project_success[queue.project_id] = [queue]
-        failed_queues = backup_mgt.get_queues(
+                project_success[task.project_id] = [task]
+        failed_tasks = backup_mgt.get_queues(
             filters={"backup_status": constants.BACKUP_FAILED}
         )
-        for queue in failed_queues:
-            if queue.project_id in project_failed:
-                project_failed[queue.project_id].append(queue)
+        for task in failed_tasks:
+            if task.project_id in project_failed:
+                project_failed[task.project_id].append(task)
             else:
-                project_failed[queue.project_id] = [queue]
+                project_failed[task.project_id] = [task]
 
         html = ""
         for project_id, project_name in self.project_list:
diff --git a/staffeln/conf/conductor.py b/staffeln/conf/conductor.py
index 5ab8e4b..e8df557 100755
--- a/staffeln/conf/conductor.py
+++ b/staffeln/conf/conductor.py
@@ -23,6 +23,12 @@
         min=10,
         help=_("The time of bakup period, the unit is one minute."),
     ),
+    cfg.IntOpt(
+        "report_period",
+        default=1440,
+        min=10,
+        help=_("The time of report period, the unit is one minute."),
+    ),
     cfg.StrOpt(
         "backup_cycle_timout",
         regex=(
