mirror of
https://github.com/getredash/redash.git
synced 2025-12-19 17:37:19 -05:00
* add rq and an rq_worker service * add rq_scheduler and an rq_scheduler service * move beat schedule to periodic_jobs queue * move version checks to RQ * move query result cleanup to RQ * use timedelta and DRY up a bit * move custom tasks to RQ * do actual schema refreshes in rq * rename 'period_jobs' to 'periodic', as it obviously holds jobs * move send_email to rq * DRY up enqueues * ditch and use a partially applied decorator * move subscribe to rq * move check_alerts_for_query to rq * move record_event to rq * make tests play nicely with rq * 👋 beat * rename rq_scheduler to plain scheduler, now that there's no Celery scheduler entrypoint * add some color to rq-worker's output * add logging context to rq jobs (while keeping execute_query context via get_task_logger for now) * move schedule to its own module * cancel previously scheduled periodic jobs. not sure this is a good idea. * rename redash.scheduler to redash.schedule * allow custom dynamic jobs to be added decleratively * add basic monitoring to rq queues * add worker monitoring * pleasing the CodeClimate overlords * adjust cypress docker-compose.yml to include rq changes * DRY up Cypress docker-compose * add rq dependencies to cypress docker-compose service * an odd attempt at watching docker-compose logs when running with Cypress * Revert "an odd attempt at watching docker-compose logs when running with Cypress" This reverts commit016bd1a93e. * show docker-compose logs at Cypress shutdown * Revert "DRY up Cypress docker-compose" This reverts commit43abac7084. * minimal version for binding is 3.2 * remove unneccesary code reloads on cypress * add a command which errors if any of the workers running inside the current machine haven't been active in the last minute * SCHEMAS_REFRESH_QUEUE is no longer a required setting * split tasks/queries.py to execution.py and maintenance.py * fix tests after query execution split * pleasing the CodeClimate overlords * rename worker to celery_worker and rq_worker to worker * use /rq_status instead of /jobs * show started jobs' time ago according to UTC * replace all spaces in column names * fix query tests after execution split * exit with an int * general lint * add an entrypoint for rq_healthcheck * fix indentation * delete all existing periodic jobs before scheduling them * remove some unrequired requires * move schedule example to redash.schedule * add RQ integration to Sentry's setup * pleasing the CodeClimate overlords * remove replication settings from docker-compose - a proper way to scale using docker-compose would be the --scale CLI option, which will be described in the knowledge based * revert to calling a function in dynamic settings to allow periodic jobs to be scheduled after app has been loaded * don't need to depend on context when templating failure reports * set the timeout_ttl to double the interval to avoid job results from expiring and having periodic jobs not reschedule * whoops, bad merge * describe custom jobs and don't actually schedule them * fix merge
87 lines
2.3 KiB
YAML
87 lines
2.3 KiB
YAML
# This configuration file is for the **development** setup.
|
|
# For a production example please refer to setup/docker-compose.yml.
|
|
version: '3.2'
|
|
services:
|
|
server:
|
|
build: .
|
|
command: dev_server
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
ports:
|
|
- "5000:5000"
|
|
- "5678:5678"
|
|
volumes:
|
|
- ".:/app"
|
|
environment:
|
|
PYTHONUNBUFFERED: 0
|
|
REDASH_LOG_LEVEL: "INFO"
|
|
REDASH_REDIS_URL: "redis://redis:6379/0"
|
|
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
|
|
REDASH_RATELIMIT_ENABLED: "false"
|
|
scheduler:
|
|
build: .
|
|
command: dev_scheduler
|
|
volumes:
|
|
- type: bind
|
|
source: .
|
|
target: /app
|
|
depends_on:
|
|
- server
|
|
environment:
|
|
REDASH_REDIS_URL: "redis://redis:6379/0"
|
|
REDASH_MAIL_DEFAULT_SENDER: redash@example.com
|
|
REDASH_MAIL_SERVER: email
|
|
worker:
|
|
build: .
|
|
command: dev_worker
|
|
volumes:
|
|
- type: bind
|
|
source: .
|
|
target: /app
|
|
depends_on:
|
|
- server
|
|
tty: true
|
|
environment:
|
|
PYTHONUNBUFFERED: 0
|
|
REDASH_LOG_LEVEL: "INFO"
|
|
REDASH_REDIS_URL: "redis://redis:6379/0"
|
|
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
|
|
QUEUES: "default periodic schemas"
|
|
celery-worker:
|
|
build: .
|
|
command: dev_celery_worker
|
|
volumes:
|
|
- type: bind
|
|
source: .
|
|
target: /app
|
|
depends_on:
|
|
- server
|
|
- email
|
|
environment:
|
|
PYTHONUNBUFFERED: 0
|
|
REDASH_LOG_LEVEL: "INFO"
|
|
REDASH_REDIS_URL: "redis://redis:6379/0"
|
|
REDASH_DATABASE_URL: "postgresql://postgres@postgres/postgres"
|
|
QUEUES: "queries,scheduled_queries"
|
|
WORKERS_COUNT: 2
|
|
REDASH_MAIL_DEFAULT_SENDER: redash@example.com
|
|
REDASH_MAIL_SERVER: email
|
|
redis:
|
|
image: redis:3-alpine
|
|
restart: unless-stopped
|
|
postgres:
|
|
image: postgres:9.5-alpine
|
|
# The following turns the DB into less durable, but gains significant performance improvements for the tests run (x3
|
|
# improvement on my personal machine). We should consider moving this into a dedicated Docker Compose configuration for
|
|
# tests.
|
|
ports:
|
|
- "15432:5432"
|
|
command: "postgres -c fsync=off -c full_page_writes=off -c synchronous_commit=OFF"
|
|
restart: unless-stopped
|
|
email:
|
|
image: djfarrelly/maildev
|
|
ports:
|
|
- "1080:80"
|
|
restart: unless-stopped
|