我正在开发 Yii2 应用程序。有一个控制台脚本执行的时间很长,但失败并显示错误:MySQL 服务器已消失。
根据日志,它会在 6-7 秒后在没有与数据库通信的情况下抛出异常(它做了一些工作,如果需要,应该更新一个表)。
我在数据库配置中添加了 PDO 超时:
'attributes' => [
PDO::ATTR_TIMEOUT => 600,
],
Run Code Online (Sandbox Code Playgroud)
我还检查了 MySQL 超时变量,但它们似乎很好:
mysql> show variables like '%timeout%';
+----------------------------+--------+
| Variable_name | Value |
+----------------------------+--------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 259200 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| table_lock_wait_timeout | 50 |
| …
Run Code Online (Sandbox Code Playgroud) 我有两个本地运行的 Keycloak 实例。它们通过 OIDC 连接。到目前为止一切正常 - 我可以通过任何 Keycloak 实例登录。
现在我正在尝试设置令牌交换,但失败并出现“invalid_token”错误。我想做“外部到内部”的代币交换。以下 Keycloak 日志显示 Keycloak 使用我向另一个 Keycloak 实例提供的令牌发送 HTTP GET 请求以获取用户信息:
08:14:36,523 DEBUG http-outgoing-19 >> "GET /auth/realms/master/protocol/openid-connect/userinfo HTTP/1.1[\r][\n]"
08:14:36,523 DEBUG http-outgoing-19 >> "Authorization: Bearer eyJhbGciOiJSU...[\r][\n]"
Run Code Online (Sandbox Code Playgroud)
响应是 401:
08:14:36,530 DEBUG http-outgoing-19 << "HTTP/1.1 401 Unauthorized[\r][\n]"
08:14:36,530 DEBUG http-outgoing-19 << "X-XSS-Protection: 1; mode=block[\r][\n]"
08:14:36,530 DEBUG http-outgoing-19 << "X-Frame-Options: SAMEORIGIN[\r][\n]"
08:14:36,530 DEBUG http-outgoing-19 << "Referrer-Policy: no-referrer[\r][\n]"
08:14:36,530 DEBUG http-outgoing-19 << "Date: Tue, 24 Nov 2020 08:14:36 GMT[\r][\n]"
08:14:36,530 DEBUG http-outgoing-19 << "Connection: keep-alive[\r][\n]" …
Run Code Online (Sandbox Code Playgroud) 从 CLI 或 AWS 控制台为 http 端点创建新的 SNS 订阅后,我收到来自 Amazon 的确认订阅请求。我的代码执行确认,然后我收到 Amazon 的响应,表明订阅已通过 SubscriptionArn 成功确认。另外,在 AWS 控制台中,我看到订阅已确认。
但几秒钟后,我又收到了来自亚马逊的确认请求。脚本尝试处理它,但 Amazon 发送了一条错误消息"Subscription already confirmed"
。并且这会重复多次。
为什么亚马逊在确认后仍发送确认请求?是否可以检查订阅是否已确认且未执行confirmSubscription
?
PS:我使用 NodeJS SDK 来确认订阅。
谢谢