discover.build在某些机器上需要130秒

时间:2018-12-29 16:33:31

标签: python google-api-client

我正在使用apiclient / googleapiclient与Google日历同步。我有一个测试用例,可以打印出日历中的一些事件。问题是,在本地(Mac,Ubuntu),它对所有开发人员都快速执行。在所有ubuntu DigitalOcean服务器上,发现行都行130秒。

我的问题是,为什么这在开发人员的计算机上可以快速运行,而在生产服务器上却无法运行?

我尝试了apiclient / googleapiclient,build / build_from_document无效。

我尝试了Http(cache ='。cache')并循环运行了该测试,但所做的只是将130秒的延迟向下移动了几行。

from __future__ import print_function
import sys
from datetime import datetime
from googleapiclient import discovery
import httplib2
from oauth2client import file


store = file.Storage( 'XXXXXXXXXXXX/app/config/calendar-python-creds.json' )
creds = store.get()
credsAuthorize = creds.authorize( httplib2.Http() )


# This line takes 130 seconds on digitalOcean ubuntu servers, but all local devs' machines it is fast (mac and ubuntu)
service = discovery.build('calendar', 'v3', http=credsAuthorize)
now = datetime.utcnow().isoformat() + 'Z' # 'Z' indicates UTC time
events_result = service.events().list(calendarId='XXXXXXXXXXXXXXXX@group.calendar.google.com', timeMin=now, maxResults=10, singleEvents=True, orderBy='startTime').execute()
events = events_result.get('items', [])
if not events:
    print('No upcoming events found.')
for event in events:
    start = event['start'].get('dateTime', event['start'].get('date'))
    print(start, event['summary'])

结果始终是正确的,但是某些计算机上的Discovery.build()会延迟130秒。

0 个答案:

没有答案