mik-laj commented on pull request #9544:
URL: https://github.com/apache/airflow/pull/9544#issuecomment-655818454
Can you add this test case to avoid regression in number of queries?
```python
@provide_session
def test_process_dags_queries_count_after_finish_dag_run(self, session):
with mock.patch.dict("os.environ", {
"PERF_DAGS_COUNT": "3",
"PERF_TASKS_COUNT": "20",
"PERF_START_AGO": "1d",
"PERF_SCHEDULE_INTERVAL": "16h",
"PERF_SHAPE": "grid",
}), conf_vars({
('scheduler', 'use_job_schedule'): 'True',
}):
dagbag = DagBag(dag_folder=ELASTIC_DAG_FILE,
include_examples=False)
processor = DagFileProcessor([], mock.MagicMock())
# Create new DAG Runs
with assert_queries_count(28):
processor._process_dags(dagbag.dags.values())
self.assertEqual(session.query(DagRun).count(), 3)
self.assertEqual(session.query(DagRun).filter(DagRun.state ==
State.RUNNING).count(), 3)
# No new DAG Run
with assert_queries_count(19):
processor._process_dags(dagbag.dags.values())
self.assertEqual(session.query(DagRun).count(), 3)
self.assertEqual(session.query(DagRun).filter(DagRun.state ==
State.RUNNING).count(), 3)
session.query(TaskInstance).update({
"state": State.SUCCESS,
"start_date": timezone.utcnow(),
"end_date": timezone.utcnow(),
"duration": 0,
})
# Finish Dag Runs
with assert_queries_count(19):
processor._process_dags(dagbag.dags.values())
self.assertEqual(session.query(DagRun).count(), 3)
self.assertEqual(session.query(DagRun).filter(DagRun.state ==
State.RUNNING).count(), 0)
# No new DAG Runs
with assert_queries_count(7):
processor._process_dags(dagbag.dags.values())
self.assertEqual(session.query(DagRun).count(), 3)
self.assertEqual(session.query(DagRun).filter(DagRun.state ==
State.RUNNING).count(), 0) @provide_session
def test_process_dags_queries_count_after_finish_dag_run(self, session):
with mock.patch.dict("os.environ", {
"PERF_DAGS_COUNT": "3",
"PERF_TASKS_COUNT": "20",
"PERF_START_AGO": "1d",
"PERF_SCHEDULE_INTERVAL": "16h",
"PERF_SHAPE": "grid",
}), conf_vars({
('scheduler', 'use_job_schedule'): 'True',
}):
dagbag = DagBag(dag_folder=ELASTIC_DAG_FILE,
include_examples=False)
processor = DagFileProcessor([], mock.MagicMock())
# Create new DAG Runs
with assert_queries_count(28):
processor._process_dags(dagbag.dags.values())
self.assertEqual(session.query(DagRun).count(), 3)
self.assertEqual(session.query(DagRun).filter(DagRun.state ==
State.RUNNING).count(), 3)
# No new DAG Run
with assert_queries_count(19):
processor._process_dags(dagbag.dags.values())
self.assertEqual(session.query(DagRun).count(), 3)
self.assertEqual(session.query(DagRun).filter(DagRun.state ==
State.RUNNING).count(), 3)
session.query(TaskInstance).update({
"state": State.SUCCESS,
"start_date": timezone.utcnow(),
"end_date": timezone.utcnow(),
"duration": 0,
})
# Finish Dag Runs
with assert_queries_count(19):
processor._process_dags(dagbag.dags.values())
self.assertEqual(session.query(DagRun).count(), 3)
self.assertEqual(session.query(DagRun).filter(DagRun.state ==
State.RUNNING).count(), 0)
# No new DAG Runs
with assert_queries_count(7):
processor._process_dags(dagbag.dags.values())
self.assertEqual(session.query(DagRun).count(), 3)
self.assertEqual(session.query(DagRun).filter(DagRun.state ==
State.RUNNING).count(), 0)
```
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]