diff --git a/etc/config.py.example b/etc/config.py.example
index af31c885e4b8e54e644833d85064433a921fb6df..b0bf382553cd958969bc06a50865992f0345b257 100644
--- a/etc/config.py.example
+++ b/etc/config.py.example
@@ -48,6 +48,9 @@ GC_PERIOD = 60
 # Za jak dlouho expiruje dokončená dávka [min]
 JOB_EXPIRATION = 5
 
+# Některé dávky (analýza scanů) mají delší expiraci [min]
+JOB_EXPIRATION_LONG = 1440
+
 # Kolik nejvýše dovolujeme registrací za minutu
 REG_MAX_PER_MINUTE = 10
 
diff --git a/mo/jobs/__init__.py b/mo/jobs/__init__.py
index e443573ea9414531096f89990d3fab7e50b43c39..2d7da1a06762287ec011e153a8292657d6acbaab 100644
--- a/mo/jobs/__init__.py
+++ b/mo/jobs/__init__.py
@@ -27,6 +27,7 @@ class TheJob:
     job_id: Optional[int]
     gatekeeper: Optional[mo.rights.Gatekeeper]
     errors: List[str]
+    expires_in_minutes: int
 
     def __init__(self, job_id: Optional[int] = None):
         """Pokud chceme pracovat s existujícím jobem, zadáme jeho ID."""
@@ -133,10 +134,13 @@ class TheJob:
         job = self.job
         logger.info(f'Job: Spouštím job #{job.job_id} ({job.type}) uživatele #{job.user_id}')
         job.state = db.JobState.running
+        job.finished_at = None
+        job.expires_at = None
         sess.commit()
 
         try:
             self.gatekeeper = mo.rights.Gatekeeper(job.user)
+            self.expires_in_minutes = config.JOB_EXPIRATION
             _handler_table[job.type](self)
             if self.errors:
                 logger.info(f'Job: Neúspěšně dokončen job #{job.job_id} ({job.result})')
@@ -153,7 +157,7 @@ class TheJob:
             job.result = 'Interní chyba, informujte prosím správce systému.'
 
         job.finished_at = mo.util.get_now()
-        job.expires_at = job.finished_at + timedelta(minutes=config.JOB_EXPIRATION)
+        job.expires_at = job.finished_at + timedelta(minutes=self.expires_in_minutes)
         sess.commit()