penelitian scheduler
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user