title: Does Superset support background asynchronous datasource refresh?
body: <p>I'm using Superset to build realtime dashboards and I want datasources (built from sqlLab resultset) be updated and cached in background on a specific day and time. </p>
  
  <p>I connected superset to MySql and built some queries in SQLLab. The result of these queries is used as datasources to build charts and dashboards. The problem is that sometimes these queries take too long and chart/dashboards are not displayed correctly (e.g Query timeout - Warning Message is showed). I configured a cache time and celery async. worker, but when this cache expires dashboards are refreshed and queries related to charts/datasources are executed showing the timeout (or other error) message.</p>
  
  <p>Actual results:</p>
  
  <ul>
  <li>Chart/dashboards show timeout warning message when refresh.</li>
  </ul>
  
  <p>Expected results:</p>
  
  <ul>
  <li>Charts/dashboards always read from cache to avoid run long queries.</li>
  <li>Schedule background async. datasource refresh on a specific day and time.</li>
  </ul>
  
  <p>Updated -- 12/09/2019</p>
  
  <p>I found that superset has a Celery task that will periodically warm up the cache based on different strategies. One of these strategies (DashboardTagsStrategy) warm up cache of charts/dashboards with custom tags. I understand that if we add a CELERYBEAT_SCHEDULE section in config.py
  specifying a crontab and tagging specific charts, we can schedule background async datasource refresh on a specific day and time. Steps to follow would be:</p>
  
  <ul>
  <li>Execute a query in SQL Lab.</li>
  <li>Use the result of this query as a datasource.</li>
  <li>Build a chart based on this datasource.</li>
  <li>Tag this chart (I still don´t know how to Tag charts or dashboards)</li>
  <li>Add a warm up cache strategy in config.py based on Tags.</li>
  <li>Configure cache timeout in charts (or datasources?¿)</li>
  </ul>