问题描述
我有一个带有自动重传的 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 ...
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)