我有一个带有自动重传的 Celery 任务设置,因为它轮询外部 REST API。如果 API 无法访问,则重新传输工作正常,除了在最后一次重试后它抛出task_failed
然后转储页面的原始 HTML 和 CSS 代码,上面写着Sorry! The page you’re looking for cannot be found
.
假设 HTML 和 CSS 代码来自任务异常,我的问题是如何配置任务(或记录器)以隐藏异常转储?
这就是我的代码的样子:
import structlog
log = structlog.get_logger(__name__)
class BaseTaskWithRetry(Task):
autoretry_for = (ccxt.DDoSProtection,
ccxt.RateLimitExceeded,
ccxt.RequestTimeout,
ccxt.ExchangeNotAvailable,
ccxt.NetworkError)
retry_kwargs = {'max_retries': 5, 'default_retry_delay': 3}
retry_backoff = True
retry_backoff_max = 30
retry_jitter = False
@shared_task(bind=True, base=BaseTaskWithRetry)
def update_market(self, exid):
log.info('Update market')
client = do_stuff(exid)
response = client.action()
输出如下所示:
2021-05-19 14:13:15.399638 [info ] Update prices [marketsdata.tasks]
2021-05-19 14:13:30.000435 [warning ] task_retrying [django_structlog.celery.receivers]
2021-05-19 14:13:15.399638 [info ] Update prices [marketsdata.tasks]
2021-05-19 14:13:30.000435 [warning ] task_retrying [django_structlog.celery.receivers]
2021-05-19 14:13:15.399638 [info ] Update prices [marketsdata.tasks]
2021-05-19 14:13:30.000435 [warning ] task_retrying [django_structlog.celery.receivers]
2021-05-19 14:13:15.399638 [info ] Update prices [marketsdata.tasks]
2021-05-19 14:13:30.000435 [warning ] task_retrying [django_structlog.celery.receivers]
2021-05-19 14:13:15.399638 [info ] Update prices [marketsdata.tasks]
2021-05-19 14:13:30.000435 [warning ] task_retrying [django_structlog.celery.receivers]
2021-05-19 14:13:15.399638 [info ] Update prices [marketsdata.tasks]
2021-05-19 14:14:54.738525 [error ] task_failed [django_structlog.celery.receivers]
<!-- saved from url=(0032)https://www.example.com/en/error -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="format-detection" content="telephone=no,email=no,address=no">
<title>ABC</title>
<link rel="Shortcut Icon" href="https://www.example.com/en/favicon.ico">
<style>
body {
margin: 0
...
...
</body>
Task marketsdata.tasks.update_market[814ee174-5379-47e3-9840-04f4430f7afe] raised unexpected ...