diff --git a/tasks/exec.go b/tasks/exec.go
index d4cf721ebc123d68fbd433fd8b693ad020ad4fcd..d89f5eb2ae57dfec25d1de9365dc8abd17df5e11 100644
--- a/tasks/exec.go
+++ b/tasks/exec.go
@@ -10,6 +10,7 @@ import (
 	"github.com/turt2live/matrix-media-repo/database"
 	"github.com/turt2live/matrix-media-repo/notifier"
 	"github.com/turt2live/matrix-media-repo/tasks/task_runner"
+	"github.com/turt2live/matrix-media-repo/util"
 	"github.com/turt2live/matrix-media-repo/util/ids"
 )
 
@@ -61,6 +62,13 @@ func beginTask(task *database.DbTask) {
 	}
 	// TODO: Worker group: https://github.com/turt2live/matrix-media-repo/issues/425
 	runnerCtx := rcontext.Initial().LogWithFields(logrus.Fields{"task_id": task.TaskId})
+
+	oneHourAgo := util.NowMillis() - (60 * 60 * 1000)
+	if task.StartTs < oneHourAgo {
+		runnerCtx.Log.Warn("Not starting task because it is more than 1 hour old.")
+		return
+	}
+
 	if task.Name == string(TaskDatastoreMigrate) {
 		go task_runner.DatastoreMigrate(runnerCtx, task)
 	} else if task.Name == string(TaskExportData) {