本文整理匯總了Python中core.logger.Logger.warning方法的典型用法代碼示例。如果您正苦於以下問題:Python Logger.warning方法的具體用法?Python Logger.warning怎麽用?Python Logger.warning使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類core.logger.Logger
的用法示例。
在下文中一共展示了Logger.warning方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: do_request
# 需要導入模塊: from core.logger import Logger [as 別名]
# 或者: from core.logger.Logger import warning [as 別名]
def do_request(**kwargs):
"""
Realiza una petición a un recurso de Gmail API.
:param kwargs: Parámetros de la petición.
:type kwargs: dict.
:return: Respuesta de Gmail API.
"""
"""
Puede que ocurra un error de rateLimitExceeded o userRateLimitExceeded.
En ese caso la documentación oficial recomienda implementar un exponential backoff
https://developers.google.com/gmail/api/guides/migrate-from-emapi
https://developers.google.com/drive/v2/web/handle-errors
https://github.com/google/google-api-python-client/blob/master/googleapiclient/http.py#L65
"""
from core.logger import Logger
if "userId" not in kwargs:
kwargs["userId"] = "me"
Logger.info("Executing request...")
# Reintentamos 3 veces.
for n in range(0, 3):
try:
Logger.info("Try #{}".format(n + 1))
response = method(**kwargs).execute(num_retries=3)
return response
except errors.HttpError, e:
Logger.info(e)
Logger.info("Execution failed...")
Logger.info("Status: {}".format(e.resp.status))
Logger.info("Reason: {}".format(e.resp.reason))
if e.resp.status in [403, 429, 503] or \
e.resp.reason in ["rateLimitExceeded", "userRateLimitExceeded"]:
Logger.warning("Error {}. Retrying".format(e.resp.status))
time.sleep((2 ** n) + random.randint(0, 1000) / 1000)
else:
Logger.error("Unknown error: {}".format(e))
raise e