mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
fix(cron): missing field init, unnecessary save, and shutdown cleanup
1. Add missing `last_delivery_error` field initialization in `create_job()`. `mark_job_run()` sets this field on line 596 but it was never initialized, causing inconsistent job schemas between new and executed jobs. 2. Replace unnecessary `save_jobs()` call with a warning log when `mark_job_run()` is called with a non-existent job_id. Previously the function would silently write unchanged data to disk. 3. Add `cancel_futures=True` to the `finally` block in cron scheduler's thread pool shutdown. The `except` path already passes this flag but the normal exit path did not, leaving futures running after inactivity timeout detection.
This commit is contained in:
parent
a4fc38c5b1
commit
c5ab760528
2 changed files with 4 additions and 3 deletions
|
|
@ -452,6 +452,7 @@ def create_job(
|
|||
"last_run_at": None,
|
||||
"last_status": None,
|
||||
"last_error": None,
|
||||
"last_delivery_error": None,
|
||||
# Delivery configuration
|
||||
"deliver": deliver,
|
||||
"origin": origin, # Tracks where job was created for "origin" delivery
|
||||
|
|
@ -620,8 +621,8 @@ def mark_job_run(job_id: str, success: bool, error: Optional[str] = None,
|
|||
|
||||
save_jobs(jobs)
|
||||
return
|
||||
|
||||
save_jobs(jobs)
|
||||
|
||||
logger.warning("mark_job_run: job_id %s not found, skipping save", job_id)
|
||||
|
||||
|
||||
def advance_next_run(job_id: str) -> bool:
|
||||
|
|
|
|||
|
|
@ -769,7 +769,7 @@ def run_job(job: dict) -> tuple[bool, str, str, Optional[str]]:
|
|||
_cron_pool.shutdown(wait=False, cancel_futures=True)
|
||||
raise
|
||||
finally:
|
||||
_cron_pool.shutdown(wait=False)
|
||||
_cron_pool.shutdown(wait=False, cancel_futures=True)
|
||||
|
||||
if _inactivity_timeout:
|
||||
# Build diagnostic summary from the agent's activity tracker.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue