GCP Cloud Functions многопоточный почтовый запрос

[Д2] 1. Проверьте сертификат

Попробуйте загрузить целевой URL-адрес в браузере и просмотреть сертификат сайта (обычно он доступен значком с надписью блокировки. Он находится слева или справа от адресной строки браузера) истек или не доверен по другой причине.

2. Установите последние версии JRE и JDK

Новые версии обычно поставляются с обновленным набором доверенных сертификатов.

Также, если это возможно, удалите старые версии. Это приведет к ошибкам неправильной конфигурации.

3. Проверьте свою конфигурацию:

  • Проверьте, где указана переменная окружения JAVA_HOME.
  • Проверьте, какую версию java вы используете для запуска программы. В IntelliJ проверьте: Файл -> Структура проекта ... -> Настройки проекта -> Проект -> Проект SDK: Файл -> Структура проекта ... -> Настройки платформы -> SDK

4. Скопируйте все хранилище ключей из новой версии Java

Если вы разрабатываете под JDK, отличную от последней доступной, попробуйте заменить файл %JAVA_HOME%/jre/lib/security/cacerts на новый с последней установленной JRE (сначала сделайте резервную копию ), как @ jeremy-goodell предлагает в своем ответе

5. Добавить сертификат (ы) в хранилище ключей

Если ничто из вышеизложенного не решит вашу проблему, используйте keytool для сохранения сертификата (ов) в хранилище ключей Java:

keytool -trustcacerts -keystore "%JAVA_HOME%jre\lib\security\cacerts" -storepass changeit -importcert -alias  -file 

Файл с сертификатом можно получить из браузера, как @MagGGG предлагает в своем ответе .

Примечание 1: вам может потребоваться повторить это для каждого сертификата в цепочке сертификата вашего сайта. Начните с корня.

Примечание 2: должно быть уникальным среди ключей в хранилище, или keytool покажет ошибку.

Чтобы получить список всех сертификаты в магазине, который вы можете запустить:

keytool -list -trustcacerts -keystore "%JAVA_HOME%jre\lib\security\cacerts" -storepass changeit

Если что-то пойдет не так, это поможет вам удалить сертификат из магазина:

keytool -delete -alias  -keystore "%JAVA_HOME%jre\lib\security\cacerts" -storepass changeit

1
задан Xao 16 January 2019 в 11:57
поделиться

1 ответ

Проблема в том, что вы используете payload.update() для изменения объекта payload, а затем пропускаете его. Это приводит к тому, что одна и та же полезная нагрузка используется для каждого потока, потому что к моменту выполнения запроса оригинал payload был обновлен, чтобы иметь последний набор _ids.

Вместо этого создайте новый dict из существующей полезной нагрузки:

for _ids in limits:
    t = Thread(target=worker, args=(recovery_url, dict(**payload, instances=_ids)))
    t.start()
0
ответ дан Dustin Ingram 16 January 2019 в 11:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: