Middle
What is the difference between Cron and Apache Airflow?
sobes.tech AI
Answer from AI
In cron, task scheduling is managed through a config file, where each line defines a command and its execution time. In Airflow, tasks (DAGs) are described in Python, allowing for more complex logic, dependencies between tasks, error handling, and retries. Airflow provides a web interface for monitoring, managing, and visualizing DAGs. Cron lacks built-in monitoring and visualization mechanisms. Cron is suitable for simple, independent tasks, while Airflow is designed for complex workflows with dependencies.
# Example crontab entry
# Run script every day at 2:00
# 0 2 * * * /path/to/your/script.py
# Example of a simple DAG in Airflow
from airflow import DAG
from airflow.operators.python import PythonOperator
from datetime import datetime
def hello_world():
print("Hello, Airflow!")
with DAG(
dag_id='simple_hello_world',
start_date=datetime(2023, 1, 1),
schedule_interval='@daily',
catchup=False
) as dag:
task = PythonOperator(
task_id='say_hello',
python_callable=hello_world
)
Main differences:
| Attribute | Cron | Apache Airflow |
|---|---|---|
| Task description | Config file (crontab) | Python code (DAGs) |
| Task dependencies | No | Yes (via defining execution order) |
| Error handling | No built-in | Built-in (retries, notifications) |
| Monitoring | External (via logs) | Built-in web interface |
| Scalability | Limited | High (distributed architecture) |
| Visualization | No | Built-in (DAG graphs) |
| Use cases | Simple, independent, scheduled tasks | Complex ETL/ELT pipelines, service orchestration |