
    yj'                         d Z ddlZddlmZmZmZ ddlmZmZ ddlm	Z	m
Z
 ddlmZ ddlmZ ddlmZ  ej        e          Zd	efd
ZdS )zi
Queue cleanup job.

This module provides a periodic cleanup job that removes old processed queue items.
    N)datetime	timedeltatimezone)Anycast)CursorResultdelete)models)settings)
tracked_dbreturnc                    K   t          d          4 d{V } t          j        t          j                  }|t          t          j        j                  z
  }t          t          t                   |                     t          t          j                                      t          j        j        t          j        j                            d          t          j        j                            d          t          j        j        |k     z  z  z                       d{V           }|                                  d{V  |j        }t0                              d|           |cddd          d{V  S # 1 d{V swxY w Y   dS )z
    Delete processed queue items.

    Successfully processed queue items are deleted immediately,
    while errored queue items are deleted after retention window.

    Returns:
        The number of queue items deleted.
    cleanup_queue_itemsN)secondsz)Queue cleanup completed, deleted %d items)r   r   nowr   utcr   r   DERIVERQUEUE_ERROR_RETENTION_SECONDSr   r   r   executer	   r
   	QueueItemwhere	processederroris_is_not
created_atcommitrowcountloggerinfo)dbr   error_cutoffresultdeleted_counts        D/DATA/AppData/hermes/projects/honcho/src/reconciler/queue_cleanup.pyr   r      s      /00       Bl8<((Y$B
 
 
 
 **v'((..$.(.22488",299$??%/:\IK	 	       
 
 iikk?OOO1                             s   EE;;
FF)__doc__loggingr   r   r   typingr   r   
sqlalchemyr   r	   srcr
   
src.configr   src.dependenciesr   	getLogger__name__r   intr        r%   <module>r2      s      2 2 2 2 2 2 2 2 2 2         + + + + + + + +             ' ' ' ' ' '		8	$	$"3 " " " " " "r1   