YTShortMakerArchx commited on
Commit
76db87d
·
verified ·
1 Parent(s): 6bfa8f1

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +28 -0
main.py CHANGED
@@ -710,6 +710,33 @@ async def process_video_task(
710
  logger.exception(f"process_video_task unhandled for {job_id}")
711
  update_job(job_id, status="failed", error="Unexpected server error")
712
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
713
  # =============================================================================
714
  # FILE CLEANUP HELPER
715
  # =============================================================================
@@ -1073,6 +1100,7 @@ async def startup():
1073
  logger.info("=" * 60)
1074
 
1075
  asyncio.create_task(_queue_worker())
 
1076
 
1077
  try:
1078
  vids = await list_videos_from_dataset("minecraft")
 
710
  logger.exception(f"process_video_task unhandled for {job_id}")
711
  update_job(job_id, status="failed", error="Unexpected server error")
712
 
713
+ async def _cleanup_old_videos():
714
+ """Deletes videos older than 1 hour every 10 minutes"""
715
+ while True:
716
+ await asyncio.sleep(600) # 10 minutes
717
+
718
+ try:
719
+ cutoff_time = time.time() - 3600 # 1 hour ago
720
+ cleaned_count = 0
721
+ cleaned_size_mb = 0.0
722
+
723
+ for video_file in OUTPUT_DIR.glob("*.mp4"):
724
+ try:
725
+ file_stat = video_file.stat()
726
+ if file_stat.st_mtime < cutoff_time:
727
+ file_size_mb = file_stat.st_size / 1024 / 1024
728
+ video_file.unlink()
729
+ cleaned_count += 1
730
+ cleaned_size_mb += file_size_mb
731
+ logger.info(f"Cleaned up {video_file.name} ({file_size_mb:.1f}MB)")
732
+ except Exception as e:
733
+ logger.warning(f"Cleanup failed {video_file.name}: {e}")
734
+
735
+ if cleaned_count > 0:
736
+ logger.info(f"Cleaned {cleaned_count} videos, freed {cleaned_size_mb:.1f}MB")
737
+ except Exception as e:
738
+ logger.error(f"Cleanup error: {e}")
739
+
740
  # =============================================================================
741
  # FILE CLEANUP HELPER
742
  # =============================================================================
 
1100
  logger.info("=" * 60)
1101
 
1102
  asyncio.create_task(_queue_worker())
1103
+ asyncio.create_task(_cleanup_old_videos())
1104
 
1105
  try:
1106
  vids = await list_videos_from_dataset("minecraft")