добавлен метод удаления строк в бд + настроен CORS на ip сайта
This commit is contained in:
56
main.py
56
main.py
@@ -39,7 +39,7 @@ wp.create_table()
|
||||
|
||||
app.add_middleware(
|
||||
CORSMiddleware,
|
||||
allow_origins=["*"], # или список разрешенных адресов, например ["http://localhost:8080"]
|
||||
allow_origins=["http://localhost:5173", "http://45.129.78.228:8000"], # или список разрешенных адресов, например [""]
|
||||
allow_credentials=True,
|
||||
allow_methods=["*"],
|
||||
allow_headers=["*"],
|
||||
@@ -351,7 +351,28 @@ def start_pars_two_istochnik():
|
||||
|
||||
wp.update_task(task_id, status='completed', finished_at=datetime.utcnow())
|
||||
|
||||
# Функции для автоматического запуска
|
||||
def scheduled_parser_1():
|
||||
"""Планировщик для первого парсера"""
|
||||
istochnik = "" # пустая строка = текущая дата
|
||||
start_pars_one_istochnik(istochnik.split("."))
|
||||
|
||||
def scheduled_parser_2():
|
||||
"""Планировщик для второго парсера"""
|
||||
start_pars_two_istochnik()
|
||||
|
||||
@app.on_event("startup")
|
||||
async def start_scheduler():
|
||||
"""Запуск планировщика при старте приложения"""
|
||||
scheduler.add_job(scheduled_parser_1, "cron", hour=10, minute=0)
|
||||
scheduler.add_job(scheduled_parser_2, "cron", hour=11, minute=0)
|
||||
|
||||
scheduler.start()
|
||||
|
||||
@app.on_event("shutdown")
|
||||
async def stop_scheduler():
|
||||
"""Остановка планировщика при выключении"""
|
||||
scheduler.shutdown()
|
||||
|
||||
class ParserOneRequest(BaseModel):
|
||||
time: str
|
||||
@@ -381,35 +402,10 @@ def get_settings():
|
||||
@app.post("/settings", summary="Метод сохранения настроек парсера")
|
||||
def set_settings(settings: sw.Source):
|
||||
return sw.update_source(settings)
|
||||
|
||||
# Функции для автоматического запуска
|
||||
def scheduled_parser_1():
|
||||
"""Планировщик для первого парсера"""
|
||||
print("Запуск планировщика парсера 1")
|
||||
istochnik = "" # пустая строка = текущая дата
|
||||
start_pars_one_istochnik(istochnik.split("."))
|
||||
|
||||
def scheduled_parser_2():
|
||||
"""Планировщик для второго парсера"""
|
||||
print("Запуск планировщика парсера 2")
|
||||
start_pars_two_istochnik()
|
||||
|
||||
@app.on_event("startup")
|
||||
async def start_scheduler():
|
||||
"""Запуск планировщика при старте приложения"""
|
||||
# Парсер 1 - каждый день в 6:00
|
||||
scheduler.add_job(scheduled_parser_1, "cron", hour=10, minute=0)
|
||||
|
||||
# Парсер 2 - каждый день в 7:00
|
||||
scheduler.add_job(scheduled_parser_2, "cron", hour=11, minute=0)
|
||||
|
||||
scheduler.start()
|
||||
print("Планировщик запущен: парсер 1 в 6:00, парсер 2 в 7:00")
|
||||
|
||||
@app.on_event("shutdown")
|
||||
async def stop_scheduler():
|
||||
"""Остановка планировщика при выключении"""
|
||||
scheduler.shutdown()
|
||||
@app.delete("/delete_task/{task_id}", summary="Метод удаления задачи")
|
||||
def delete_task(task_id: int):
|
||||
return print(wp.delete_task(task_id))
|
||||
|
||||
# if __name__ == "__main__":
|
||||
# uvicorn.run("main:app", port=8001, reload=True)
|
||||
# uvicorn.run("main:app", port=8001, reload=True)
|
||||
|
||||
@@ -38,12 +38,6 @@ def insert_task(status, source_url=None, source_id=None, priority=0):
|
||||
task_id = cur.fetchone()[0]
|
||||
return task_id
|
||||
|
||||
def get_task(task_id):
|
||||
with conn.cursor(cursor_factory=RealDictCursor) as cur:
|
||||
cur.execute("SELECT * FROM work_parser WHERE id = %s;", (task_id,))
|
||||
task = cur.fetchone()
|
||||
return task
|
||||
|
||||
|
||||
def get_tasks_offset(limit, offset):
|
||||
with conn.cursor(cursor_factory=RealDictCursor) as cur:
|
||||
@@ -55,6 +49,14 @@ def get_tasks_offset(limit, offset):
|
||||
tasks = cur.fetchall()
|
||||
return tasks
|
||||
|
||||
def delete_task(task_id: int):
|
||||
with conn.cursor(cursor_factory=RealDictCursor) as cur:
|
||||
cur.execute("DELETE FROM work_parser WHERE id = %s RETURNING *;", (task_id,))
|
||||
deleted_task = cur.fetchone()
|
||||
if deleted_task:
|
||||
return {"message": f"Задача {task_id} удалена", "deleted_task": dict(deleted_task)}
|
||||
else:
|
||||
return {"message": f"Задача с id {task_id} не найдена"}
|
||||
|
||||
def update_task(task_id, **fields):
|
||||
# dynamic update query generator
|
||||
|
||||
Reference in New Issue
Block a user