diff --git a/Application.cfc b/Application.cfc
index 1f38d80..51e2487 100644
--- a/Application.cfc
+++ b/Application.cfc
@@ -93,9 +93,13 @@
target_id INTEGER,
queued_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
processed_at TIMESTAMP,
- status TEXT DEFAULT 'queued'
+ status TEXT DEFAULT 'queued',
+ error_reason TEXT
)
+
+ ALTER TABLE #request.logTableName# ADD COLUMN IF NOT EXISTS error_reason TEXT
+
UPDATE #request.logTableName#
SET processed_at = NOW(), status = 'done'
@@ -117,6 +121,16 @@
SELECT 1 FROM #request.tableName# WHERE id = target_id
)
+
+ UPDATE #request.logTableName#
+ SET status = 'failed', error_reason = 'target not found'
+ WHERE status = 'queued'
+ AND action = 'update'
+ AND target_id IS NOT NULL
+ AND NOT EXISTS (
+ SELECT 1 FROM #request.tableName# WHERE id = target_id
+ )
+
diff --git a/query.cfm b/query.cfm
index ea39530..cf8c2d7 100644
--- a/query.cfm
+++ b/query.cfm
@@ -55,7 +55,7 @@
- SELECT id, action, text, request_id, target_id, queued_at, processed_at, status
+ SELECT id, action, text, request_id, target_id, queued_at, processed_at, status, error_reason
FROM #request.logTableName#
ORDER BY id DESC
LIMIT 20
@@ -129,9 +129,11 @@