fix: Stabilize and deprecate legacy alerts module (#12627)
* Add deprecation notice to superset.tasks.schedules
* Reduce retries and schedule window for alerts
(cherry picked from commit e4ae17def5a3c86e6ed2cf011452a5cd83b43ecd)
diff --git a/superset/tasks/schedules.py b/superset/tasks/schedules.py
index e3cef83..c6e8e96 100644
--- a/superset/tasks/schedules.py
+++ b/superset/tasks/schedules.py
@@ -14,8 +14,11 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-
-"""Utility functions used across Superset"""
+"""
+DEPRECATION NOTICE: this module is deprecated as of v1.0.0.
+It will be removed in future versions of Superset. Please
+migrate to the new scheduler: `superset.tasks.scheduler`.
+"""
import logging
import time
@@ -535,11 +538,10 @@
@celery_app.task(
name="alerts.run_query",
bind=True,
- soft_time_limit=config["EMAIL_ASYNC_TIME_LIMIT_SEC"],
- # TODO: find cause of https://github.com/apache/incubator-superset/issues/10530
+ # TODO: find cause of https://github.com/apache/superset/issues/10530
# and remove retry
autoretry_for=(NoSuchColumnError, ResourceClosedError,),
- retry_kwargs={"max_retries": 5},
+ retry_kwargs={"max_retries": 1},
retry_backoff=True,
)
def schedule_alert_query(
@@ -844,8 +846,8 @@
resolution = 0
now = datetime.utcnow()
start_at = now - timedelta(
- seconds=3600
- ) # process any missed tasks in the past hour
+ seconds=300
+ ) # process any missed tasks in the past few minutes
stop_at = now + timedelta(seconds=1)
with session_scope(nullpool=True) as session:
schedule_window(ScheduleType.alert, start_at, stop_at, resolution, session)