penelitian scheduler

This commit is contained in:
Power BI Dev
2026-07-18 22:29:29 +07:00
parent d21fac69aa
commit c6edee7aeb
5 changed files with 739 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
"""
DAG bulanan: sync data penelitian dosen Informatika ke DB dashboard akreditasi.
Task 1 tarik_publikasi_serpapi : semua publikasi tiap dosen dari Google
Scholar via SerpAPI (berdasar dosen.scholar;
dosen.scholar/sinta yang kosong diisi
otomatis dari halaman departemen SINTA).
Task 2 update_kuartil_scopus_sinta : label kuartil Q1-Q4 dari view Scopus di
profil SINTA -> kolom penelitian.scopus.
Environment yang wajib di-set di Coolify (service airflow-scheduler):
DB_HOST, DB_PORT, DB_USER, DB_PASS, DB_NAME -> MySQL dashboard (Coolify)
SERPAPI_KEY -> kunci SerpAPI
Opsional: SERPAPI_MAX_REQUESTS (default 90), SINTA_USERNAME/SINTA_PASSWORD.
"""
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.python import PythonOperator
# Import fungsi dari folder scripts
from scripts.scholar_api_scraper import run_publications, run_scopus
with DAG(
dag_id="scholar_penelitian_monthly",
description="Tarik publikasi dosen via SerpAPI + kuartil Scopus dari SINTA",
start_date=datetime(2026, 7, 1),
schedule_interval="0 2 1 * *",
catchup=False,
max_active_runs=1,
default_args={
"owner": "dashboard-informatika",
"retries": 1,
"retry_delay": timedelta(minutes=30),
},
tags=["scholar", "sinta", "penelitian", "dashboard"],
) as dag:
task_publikasi = PythonOperator(
task_id="tarik_publikasi_serpapi",
python_callable=run_publications,
)
task_scopus = PythonOperator(
task_id="update_kuartil_scopus_sinta",
python_callable=run_scopus,
)
task_publikasi >> task_scopus