我编写了一个缓存类,该类调用一个Web应用程序终结点,该终结点将SQL Server数据加载到Redis缓存中。该过程涉及:
1)获取OneLogin的访问令牌 2)获取SAML身份验证数据 3)登录到应用程序 4)发布到Web api端点,该端点将数据从sql server加载到redis
代码可以正常工作,并在本地运行时返回200个状态,这大约需要10分钟才能运行一次。但是,当我在ubuntu服务器上运行代码时,通过了登录步骤,并为登录会话返回了200状态。在那之后,它挂在调用将SQL数据加载到Redis的端点的最后一步。通过查看sql服务器,我可以清楚地看到redis加载作业完成。但是由于某种原因,Python发布请求只是挂起了。同样,它可以在我的本地笔记本电脑上使用。
奇怪的是,如果它是花费很短时间(例如3分钟)的端点,那么它既可以在我的本地服务器上工作,也可以在我的服务器上工作。有人可以切碎一些光线吗?
cache = Cache("https://api.us.onelogin.com")
cache.client_id = CACHING['client_id']
cache.client_secret = CACHING['client_secret']
cache.app_url = CACHING['app_url']
cache.app_id = CACHING['app_id']
cache.login_username_or_email = CACHING['login_email']
cache.login_password = CACHING['login_password']
cache.sub_domain = CACHING['sub_domain']
logging.info("Get access token for onelogin")
access_token = cache.get_access_token()
logging.info("Get SAML auth data for onelogin")
saml_data = cache.get_saml_data(access_token)
logging.info("Login to application")
login_session = cache.login_to_app(saml_data)
flushing_endpoint = CACHING['flushing_endpoint']
caching_endpoint = CACHING['caching_endpoint']
logging.info("Flush cache by using endpoint: {}".format(flushing_endpoint))
flush_status = cache.flush_cache(flushing_endpoint, login_session)
if flush_status == 200:
cache_status = cache.load_cache(caching_endpoint, login_session)