Небольшие изменения
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user