lib.py 650 B

1234567891011121314151617
  1. def filter_interval_tickets(tickets):
  2. """ Очистка тикетов, у которых закончились попытки """
  3. return list(filter(lambda ticket: ticket.interval_attempts > 0, tickets))
  4. def run_process(interval_attempts_unlimited, processing):
  5. """Обработка одного тикета с удалением."""
  6. def go(ticket):
  7. ticket.interval_attempts -= 1
  8. if ticket.interval_attempts <= 0:
  9. interval_attempts_unlimited(ticket)
  10. return None # Маркер для удаления
  11. else:
  12. processing(ticket)
  13. return ticket
  14. return go