我正在尝试启用超集电子邮件报告功能,我按照文档中的说明进行操作,但是在尝试发送测试电子邮件时遇到了麻烦。
我将在下面发送我的配置:
superset_config.py
123.123.123.0 -> 123.123.123.127
docker-compose.yml
...
class CeleryConfig(object):
BROKER_URL = 'redis://redis:6379/0'
CELERY_IMPORTS = (
'superset.sql_lab',
'superset.tasks',
)
CELERY_RESULT_BACKEND = 'redis://redis:6379/0'
CELERYD_LOG_LEVEL = 'DEBUG'
CELERYD_PREFETCH_MULTIPLIER = 10
CELERY_ACKS_LATE = True
CELERY_ANNOTATIONS = {
'sql_lab.get_sql_results': {
'rate_limit': '100/s',
},
'email_reports.send': {
'rate_limit': '1/s',
'time_limit': 120,
'soft_time_limit': 150,
'ignore_result': True,
},
}
CELERYBEAT_SCHEDULE = {
'email_reports.schedule_hourly': {
'task': 'email_reports.schedule_hourly',
'schedule': crontab(minute=1, hour='*'),
},
}
CELERY_CONFIG = CeleryConfig
# Email Reports
EMAIL_NOTIFICATIONS = True
SMTP_HOST = "email-smtp.us-east-1.amazonaws.com"
SMTP_STARTTLS = False
SMTP_SSL = True
SMTP_USER = "xxxxxxxxxxxxxxxxxxxxx"
SMTP_PORT = 25
SMTP_PASSWORD = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
SMTP_MAIL_FROM = "xxxxxxxx@xxxxxxx.com"
...
我发现问题出在凭据上,但是我使用相同的凭据进行了本地测试,并且可以正常工作。
因此,我在发现问题出处时有些失落,如果有人可以帮助我,我将非常感激。
答案 0 :(得分:0)
我忘了输入错误,我在这里发送:
superset-worker_1 | [2020-06-24 13:18:24,520: ERROR/ForkPoolWorker-1] Task email_reports.send[1447fee0-1ed4-4ff9-b2fe-b85417ff99c7] raised unexpected: URLError(ConnectionRefusedError(111, 'Connection refused'),)
superset-worker_1 | Traceback (most recent call last):
superset-worker_1 | File "/usr/local/lib/python3.6/urllib/request.py", line 1318, in do_open
superset-worker_1 | encode_chunked=req.has_header('Transfer-encoding'))
superset-worker_1 | File "/usr/local/lib/python3.6/http/client.py", line 1254, in request
superset-worker_1 | self._send_request(method, url, body, headers, encode_chunked)
superset-worker_1 | File "/usr/local/lib/python3.6/http/client.py", line 1300, in _send_request
superset-worker_1 | self.endheaders(body, encode_chunked=encode_chunked)
superset-worker_1 | File "/usr/local/lib/python3.6/http/client.py", line 1249, in endheaders
superset-worker_1 | self._send_output(message_body, encode_chunked=encode_chunked)
superset-worker_1 | File "/usr/local/lib/python3.6/http/client.py", line 1036, in _send_output
superset-worker_1 | self.send(msg)
superset-worker_1 | File "/usr/local/lib/python3.6/http/client.py", line 974, in send
superset-worker_1 | self.connect()
superset-worker_1 | File "/usr/local/lib/python3.6/http/client.py", line 946, in connect
superset-worker_1 | (self.host,self.port), self.timeout, self.source_address)
superset-worker_1 | File "/usr/local/lib/python3.6/socket.py", line 724, in create_connection
superset-worker_1 | raise err
superset-worker_1 | File "/usr/local/lib/python3.6/socket.py", line 713, in create_connection
superset-worker_1 | sock.connect(sa)
superset-worker_1 | ConnectionRefusedError: [Errno 111] Connection refused
superset-worker_1 |
superset-worker_1 | During handling of the above exception, another exception occurred:
superset-worker_1 |
superset-worker_1 | Traceback (most recent call last):
superset-worker_1 | File "/usr/local/lib/python3.6/site-packages/celery/app/trace.py", line 385, in trace_task
superset-worker_1 | R = retval = fun(*args, **kwargs)
superset-worker_1 | File "/app/superset/app.py", line 114, in __call__
superset-worker_1 | return task_base.__call__(self, *args, **kwargs)
superset-worker_1 | File "/usr/local/lib/python3.6/site-packages/celery/app/trace.py", line 650, in __protected_call__
superset-worker_1 | return self.run(*args, **kwargs)
superset-worker_1 | File "/app/superset/tasks/schedules.py", line 374, in schedule_email_report
superset-worker_1 | deliver_slice(schedule)
superset-worker_1 | File "/app/superset/tasks/schedules.py", line 335, in deliver_slice
superset-worker_1 | email = _get_slice_data(schedule)
superset-worker_1 | File "/app/superset/tasks/schedules.py", line 262, in _get_slice_data
superset-worker_1 | response = opener.open(slice_url)
superset-worker_1 | File "/usr/local/lib/python3.6/urllib/request.py", line 526, in open
superset-worker_1 | response = self._open(req, data)
superset-worker_1 | File "/usr/local/lib/python3.6/urllib/request.py", line 544, in _open
superset-worker_1 | '_open', req)
superset-worker_1 | File "/usr/local/lib/python3.6/urllib/request.py", line 504, in _call_chain
superset-worker_1 | result = func(*args)
superset-worker_1 | File "/usr/local/lib/python3.6/urllib/request.py", line 1346, in http_open
superset-worker_1 | return self.do_open(http.client.HTTPConnection, req)
superset-worker_1 | File "/usr/local/lib/python3.6/urllib/request.py", line 1320, in do_open
superset-worker_1 | raise URLError(err)
superset-worker_1 | urllib.error.URLError: <urlopen error [Errno 111] Connection refused>