diff --git a/redash/models.py b/redash/models.py index 4015db6712..0fb2305821 100644 --- a/redash/models.py +++ b/redash/models.py @@ -229,7 +229,7 @@ class DataSource(BaseModel): type = peewee.CharField() options = peewee.TextField() queue_name = peewee.CharField(default="queries") - scheduled_queue_name = peewee.CharField(default="queries") + scheduled_queue_name = peewee.CharField(default="scheduled_queries") created_at = DateTimeTZField(default=datetime.datetime.now) class Meta: diff --git a/setup/files/supervisord.conf b/setup/files/supervisord.conf index 43d065d25b..026cb04507 100644 --- a/setup/files/supervisord.conf +++ b/setup/files/supervisord.conf @@ -20,8 +20,12 @@ autorestart=true stdout_logfile=/opt/redash/logs/api.log stderr_logfile=/opt/redash/logs/api_error.log +# There are two queue types here: one for ad-hoc queries, and one for the refresh of scheduled queries +# (note that "scheduled_queries" appears only in the queue list of "redash_celery_scheduled"). +# The default concurrency level for each is 2 (-c2), you can increase based on your machine's resources. + [program:redash_celery] -command=/opt/redash/current/bin/run celery worker --app=redash.worker --beat -Qqueries,celery,scheduled_queries +command=/opt/redash/current/bin/run celery worker --app=redash.worker --beat -c2 -Qqueries,celery process_name=redash_celery numprocs=1 priority=999 @@ -29,3 +33,13 @@ autostart=true autorestart=true stdout_logfile=/opt/redash/logs/celery.log stderr_logfile=/opt/redash/logs/celery_error.log + +[program:redash_celery_scheduled] +command=/opt/redash/current/bin/run celery worker --app=redash.worker -c2 -Qscheduled_queries +process_name=redash_celery_scheduled +numprocs=1 +priority=999 +autostart=true +autorestart=true +stdout_logfile=/opt/redash/logs/celery.log +stderr_logfile=/opt/redash/logs/celery_error.log