Upload files to "/"
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
import os
|
||||
import mysql.connector
|
||||
from mysql.connector import Error
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from dotenv import load_dotenv
|
||||
|
||||
# Загрузка переменных окружения
|
||||
load_dotenv()
|
||||
|
||||
MDB_HOST = os.getenv('MDB_HOST')
|
||||
MDB_USER = os.getenv('MDB_USER')
|
||||
MDB_PW = os.getenv('MDB_PW')
|
||||
MDBASE = os.getenv('MDBASE')
|
||||
|
||||
def prefetch_all_events():
|
||||
"""
|
||||
Проверяет записи в таблице events и устанавливает флаг marked_to_publication
|
||||
для записей, которые:
|
||||
- имеют флаг is_visible = 1
|
||||
- не имеют флага marked_to_publication = 1
|
||||
- modified более часа назад от текущего времени (UTC)
|
||||
"""
|
||||
try:
|
||||
# Подключение к базе данных
|
||||
connection = mysql.connector.connect(
|
||||
host=MDB_HOST,
|
||||
user=MDB_USER,
|
||||
password=MDB_PW,
|
||||
database=MDBASE
|
||||
)
|
||||
|
||||
# Установка временной зоны соединения в UTC
|
||||
cursor_temp = connection.cursor()
|
||||
cursor_temp.execute("SET time_zone = '+00:00'")
|
||||
cursor_temp.close()
|
||||
|
||||
cursor = connection.cursor()
|
||||
|
||||
# Текущее время в UTC
|
||||
current_time_utc = datetime.now(timezone.utc).replace(tzinfo=None)
|
||||
one_hour_ago = current_time_utc - timedelta(hours=1)
|
||||
|
||||
# SQL запрос для обновления записей
|
||||
update_query = """
|
||||
UPDATE events
|
||||
SET marked_to_publication = 1
|
||||
WHERE is_visible = 1
|
||||
AND marked_to_publication = 0
|
||||
AND modified < %s
|
||||
"""
|
||||
|
||||
# Выполнение запроса
|
||||
cursor.execute(update_query, (one_hour_ago,))
|
||||
updated_count = cursor.rowcount
|
||||
|
||||
# Фиксация изменений
|
||||
connection.commit()
|
||||
|
||||
print(f"Обновлено записей: {updated_count}")
|
||||
|
||||
return updated_count
|
||||
|
||||
except Error as e:
|
||||
print(f"Ошибка базы данных: {e}")
|
||||
if 'connection' in locals() and connection.is_connected():
|
||||
connection.rollback()
|
||||
return 0
|
||||
except Exception as e:
|
||||
print(f"Общая ошибка: {e}")
|
||||
return 0
|
||||
finally:
|
||||
if 'connection' in locals() and connection.is_connected():
|
||||
cursor.close()
|
||||
connection.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
prefetch_all_events()
|
||||
Reference in New Issue
Block a user