4.Superset定时邮件功能

723 阅读2分钟

Superse支持邮件定时任务,可以配置定时发送图表或者看板.默认没有开启该功能,需要手动配置

1.修改配置文件

修改项目主目录下的 config.py 文件,设置如下:

#开启定时邮件功能
ENABLE_SCHEDULED_EMAIL_REPORTS = True


EMAIL_NOTIFICATIONS = True

SMTP_HOST = "邮箱服务器地址"
SMTP_STARTTLS = False
SMTP_SSL = False
SMTP_USER = "发件人名称"
SMTP_PORT = 25
SMTP_PASSWORD = "密码"
SMTP_MAIL_FROM = "邮箱地址"

重新执行 superset init

2.页面配置定时任务

刷新页面,多出了图表邮件定时设置功能 2.png

图表定时邮件配置页面为:http://localhost:8787/sliceemailscheduleview/list/
具体管理页面如下:

7.png

新增定时任务页面,配置crontab表达式,以及收件人信息 4.png

同样的,看板定时任务配置页面地址为: http://localhost:8787/dashboardemailscheduleview/list/

5.png

3.启动定时任务

需要启动Celery进程来执行Superset定时任务

3.1 Celery

Celery是一个分布式异步消息任务队列,可以实现任务异步处理,制定定时任务等
分别启动celery worker和celery beat:
celery worker --app=superset.tasks.celery_app:app --pool=prefork -O fair -c 4
celery beat --app=superset.tasks.celery_app:app
在worker命令行界面可以看到定时任务执行的日志

3.2 Supervisor+Celery

Supervisor 是一个进程管理工具可以用它来管理Celery进程

配置文件 supervisord.conf 添加内容如下:

[include]
;files = /etc/supervisor/conf.d/*.conf
files = /data/supervisord_config/supervisord/*.conf

[program:celeryworker]
command=celery  worker --app=superset.tasks.celery_app:app --pool=prefork -O fair -c 4
directory=/data/supervisord_config

numprocs=1
stdout_logfile=/data/supervisord_config/supervisord/celeryworker.log
stderr_logfile=/data/supervisord_config/supervisord/celeryworker_err.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 600
priority=15
user=root


[program:celerybeat]
command=celery beat --app=superset.tasks.celery_app:app
directory=/data/supervisord_config

numprocs=1
stdout_logfile=/data/supervisord_config/supervisord/celerybeat.log
stderr_logfile=/data/supervisord_config/supervisord/celerybeat_err.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 600
priority=15
user=root

执行 supervisord -c /data/superset_config/supervisord/supervisord.conf 即可启动celerybea t和celeryworker进程,当设置了autorestarttrue,进程挂掉后会自动执行重启