Получение ошибки при многопроцессорной обработке при установке функции в глобальную переменную - PullRequest
0 голосов
/ 27 января 2020

Я сейчас выполняю некоторый код асинхронно, я устанавливаю любую функцию extract_list_of_domains_to_ignore, возвращающую глобальную переменную, в этом случае я даже не использую глобальную переменную, но, как я понимаю, эта функция должна запускаться только один раз. Однако, когда я запускаю оставшуюся часть сценария, я получаю сообщение об ошибке Read requests per user per 100 seconds, но, насколько я понимаю, я запрашиваю его только один раз. Почему я получаю эту ошибку?

def extract_list_of_domains_to_ignore():
    """
    This function returns a list of strings from a google sheet
    """
    scope = ['https://spreadsheets.google.com/feeds',
         'https://www.googleapis.com/auth/drive']
    creds = ServiceAccountCredentials.from_json_keyfile_name(
        r'path\to\file.json', scope)
    client = gspread.authorize(creds)
    a_list_of_urls = []
    sheet = client.open("My Google Sheet").sheet1
    all_records = sheet.get_all_records()

    for record in all_records:
        a_list_of_urls.append(record['URL'])

    urls = list(set(blacklisted_domains))

    return urls


LIST_OF_DOMAINS_TO_IGNORE = extract_list_of_domains_to_ignore()

def parse(url):
    page = requests.get(url, headers=headers)
    soup = BeautifulSoup(page.text, 'lxml')
    MongoDBCollection.insert_one(soup)

def gen_func():
    for document in otherMongoDBCollection:
        yield document['URL']

def main():
    pool = Pool(64)
    pool.map(parse, gen_func())
    pool.terminate()
    pool.join()

if __name__ == "__main__":  # Required logic expression
    main()
gspread.exceptions.APIError: {
  "error": {
    "code": 429,
    "message": "Quota exceeded for quota group 'ReadGroup' and limit 'Read requests per user per 100 seconds' of service 'sheets.googleapis.com' for consumer 'project_number:891386161466'.",
    "status": "RESOURCE_EXHAUSTED",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.Help",
        "links": [
          {
            "description": "Google developer console API key",
            "url": "https://console.developers.google.com/project/anumber/apiui/credential"
...