Небольшие изменения

This commit is contained in:
brusnitsyn
2026-03-13 17:11:39 +09:00
parent c201d36ae6
commit de2dd82fa1
18 changed files with 1140 additions and 491 deletions

View File

@@ -2,7 +2,7 @@ import asyncio
import redis.asyncio as redis
from taskiq import ScheduledTask
from app.taskiq.broker import broker, scheduler, schedule_source, migrate_table_task
from app.taskiq.broker import broker, scheduler, schedule_source
from app.core.logging import migration_logger
REDIS_URL = "redis://127.0.0.1:6379"
@@ -33,35 +33,53 @@ async def sync_schedules_to_redis():
await r.delete(*keys)
await r.close()
# Задача для проверки расписания
checker_task = ScheduledTask(
task_name="check_schedules_task",
labels={},
cron="* * * * *", # ← Каждую минуту
cron_offset='Asia/Tokyo',
args=[],
kwargs={}
)
await schedule_source.add_schedule(checker_task)
# 3. Добавляем каждое расписание через add_schedule
added = 0
for schedule in schedules:
hour = schedule.schedule_time.hour
minute = schedule.schedule_time.minute
days_list = schedule.days_list # список чисел 0..6
# added = 0
# for schedule in schedules:
# hour = schedule.schedule_time.hour
# minute = schedule.schedule_time.minute
# days_list = schedule.days_list # список чисел 0..6
# Формируем cron-выражение
if days_list:
cron_expr = f"{minute} {hour} * * {','.join(map(str, days_list))}"
else:
cron_expr = f"{minute} {hour} * * *"
# # Формируем cron-выражение
# if days_list:
# cron_expr = f"{minute} {hour} * * {','.join(map(str, days_list))}"
# else:
# cron_expr = f"{minute} {hour} * * *"
# Используем timezone string для cron_offset (UTC+9 = Asia/Tokyo)
task = ScheduledTask(
task_name="migrate_table_task",
labels={},
cron=cron_expr,
cron_offset='Asia/Tokyo', # Timezone name для UTC+9
args=[schedule.table_name],
kwargs={"full_reload": schedule.full_reload}
)
# # Используем timezone string для cron_offset (UTC+9 = Asia/Tokyo)
# task = ScheduledTask(
# task_name="migrate_table_task",
# labels={},
# cron=cron_expr,
# cron_offset='Asia/Tokyo', # Timezone name для UTC+9
# args=[],
# kwargs={
# "table_name": schedule.table.table_name,
# "schedule_id": schedule.id,
# "metadata_id": schedule.metadata_id,
# "life_table_name": schedule.table.life_table_name,
# "uses_life": schedule.table.has_use_life(),
# "full_reload": schedule.full_reload
# }
# )
# Добавляем в Redis через источник
await schedule_source.add_schedule(task)
added += 1
migration_logger.info(f"Добавлено: {schedule.table_name} в {hour:02d}:{minute:02d} (cron: {cron_expr})")
# # Добавляем в Redis через источник
# await schedule_source.add_schedule(task)
# added += 1
# migration_logger.info(f"Добавлено: {schedule.table.table_name} в {hour:02d}:{minute:02d} (cron: {cron_expr})")
migration_logger.info(f"Синхронизировано {added} активных расписаний")
# migration_logger.info(f"Синхронизировано {added} активных расписаний")
finally:
session.close()