使用 Amazon RDS MySQL 和 Play Framework 1.2.5(c3p0 默认设置)时,连接偶尔会挂起

2024-03-20

我们遇到了问题使用 RDS Mysql 的 Amazon 托管 Play 应用程序 http://www.mchange.com/projects/c3p0/#maxAdministrativeTaskTime.

有时应用程序最终会无响应。今天我使用 jstack -F 检查了线程状态,发现有多个线程卡在 c3p0 连接的本机代码中:

Thread 14060: (state = IN_NATIVE)
 - java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[], int, int, int) @bci=0 (Compiled frame; information may be imprecise)
 - java.net.SocketInputStream.read(byte[], int, int, int) @bci=79, line=150 (Compiled frame)
 - java.net.SocketInputStream.read(byte[], int, int) @bci=11, line=121 (Compiled frame)
 - com.mysql.jdbc.util.ReadAheadInputStream.fill(int) @bci=262, line=114 (Compiled frame)
 - com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(byte[], int, int) @bci=176, line=161 (Compiled frame)
 - com.mysql.jdbc.util.ReadAheadInputStream.read(byte[], int, int) @bci=48, line=189 (Compiled frame)
 - com.mysql.jdbc.MysqlIO.readFully(java.io.InputStream, byte[], int, int) @bci=34, line=3036 (Compiled frame)
 - com.mysql.jdbc.MysqlIO.reuseAndReadPacket(com.mysql.jdbc.Buffer, int) @bci=23, line=3489 (Compiled frame)
 - com.mysql.jdbc.MysqlIO.reuseAndReadPacket(com.mysql.jdbc.Buffer) @bci=3, line=3478 (Compiled frame)
 - com.mysql.jdbc.MysqlIO.checkErrorPacket(int) @bci=12, line=4019 (Compiled frame)
 - com.mysql.jdbc.MysqlIO.sendCommand(int, java.lang.String, com.mysql.jdbc.Buffer, boolean, java.lang.String, int) @bci=428, line=2490 (Compiled frame)
 - com.mysql.jdbc.MysqlIO.sqlQueryDirect(com.mysql.jdbc.StatementImpl, java.lang.String, java.lang.String, com.mysql.jdbc.Buffer, int, int, int, boolean, java.lang.String, com.mysql.jdbc.Field[]) @bci=559, line=2651 (Compiled frame)
 - com.mysql.jdbc.ConnectionImpl.execSQL(com.mysql.jdbc.StatementImpl, java.lang.String, int, com.mysql.jdbc.Buffer, int, int, boolean, java.lang.String, com.mysql.jdbc.Field[], boolean) @bci=130, line=2677 (Compiled frame)
 - com.mysql.jdbc.ConnectionImpl.execSQL(com.mysql.jdbc.StatementImpl, java.lang.String, int, com.mysql.jdbc.Buffer, int, int, boolean, java.lang.String, com.mysql.jdbc.Field[]) @bci=17, line=2627 (Compiled frame)
 - com.mysql.jdbc.StatementImpl.executeQuery(java.lang.String) @bci=534, line=1556 (Compiled frame)
 - com.mysql.jdbc.DatabaseMetaData$9.forEach(java.lang.Object) @bci=174, line=5013 (Compiled frame)
 - com.mysql.jdbc.IterateBlock.doForAll() @bci=25, line=51 (Compiled frame)
 - com.mysql.jdbc.DatabaseMetaData.getTables(java.lang.String, java.lang.String, java.lang.String, java.lang.String[]) @bci=280, line=4991 (Compiled frame)
 - com.mchange.v2.c3p0.impl.DefaultConnectionTester.activeCheckConnectionNoQuery(java.sql.Connection, java.lang.Throwable[]) @bci=21, line=185 (Compiled frame)
 - com.mchange.v2.c3p0.impl.DefaultConnectionTester.activeCheckConnection(java.sql.Connection, java.lang.String, java.lang.Throwable[]) @bci=7, line=62 (Compiled frame)
 - com.mchange.v2.c3p0.AbstractConnectionTester.activeCheckConnection(java.sql.Connection) @bci=4, line=67 (Compiled frame)
 - com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.testPooledConnection(java.lang.Object) @bci=122, line=368 (Compiled frame)
 - com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.refurbishIdleResource(java.lang.Object) @bci=26, line=310 (Compiled frame)
 - com.mchange.v2.resourcepool.BasicResourcePool$AsyncTestIdleResourceTask.run() @bci=35, line=1999 (Interpreted frame)
 - com.mchange.v2.async.ThreadPerTaskAsynchronousRunner$TaskThread.run() @bci=41, line=255 (Interpreted frame)

如果没有设置其他连接测试,DefaultConnectionTester.activeCheckConnectionNoQuery 似乎会检查 DatabaseMetaData.getTables。

C3p0手册有说明配置正确的连接测试 http://www.mchange.com/projects/c3p0/#configuring_connection_testing and 这个答案 https://stackoverflow.com/a/10357595/28482有 Play! 的 c3p0 设置说明但我想知道:

  • Is there some way to check out what's the issue behing this?
    • 我之前遇到过的标准“Mysql 连接在 8 小时后被终止”结果是异常
  • There seems to be some default connection testing with c3p0/Play/Hibernate since this is done?
    • I have a hunch that by default c3p0 doesn't do connection testing
      • 默认值idleConnectionTestPeriod = 0、testConnectionOnCheckin = false、testConnectionOnCheckout = false
  • Is there a way to set timeout for connection testing query?
    • 例如,即使我配置了一些合理的 PreferredTestQuery,该查询是否也存在因当前 getTables() 调用而挂起的风险?
  • 还有什么我应该考虑的吗?

使用自动测试表更新(不是解决方案)

我们设置 c3p0.automaticTestTable 以进行更合理的连接测试,但这似乎并没有解决问题,只是稍微更改了线程的堆栈跟踪。

在类似的情况下,我们现在的线程堆栈如下:

"Task-Thread-for-com.mchange.v2.async.ThreadPerTaskAsynchronousRunner@6064cd08" daemon prio=10 tid=0x00007f53d403a000 nid=0x63dd runnable [0x00007f53dce4a000]
   java.lang.Thread.State: RUNNABLE
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:150)
        at java.net.SocketInputStream.read(SocketInputStream.java:121)
        at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114)
        at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161)
        at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189)
        - locked <0x00000000dbecd0d8> (a com.mysql.jdbc.util.ReadAheadInputStream)
        at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3036)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3489)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3478)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4019)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2677)
        - locked <0x00000000dbec1a70> (a com.mysql.jdbc.JDBC4Connection)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2627)
        at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1556)
        - locked <0x00000000dbec1a70> (a com.mysql.jdbc.JDBC4Connection)
        - locked <0x00000000d1330078> (a com.mysql.jdbc.StatementImpl)
        at com.mchange.v2.c3p0.impl.DefaultConnectionTester.activeCheckConnection(DefaultConnectionTester.java:73)
        at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.testPooledConnection(C3P0PooledConnectionPool.java:374)
        at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.refurbishIdleResource(C3P0PooledConnectionPool.java:310)
        at com.mchange.v2.resourcepool.BasicResourcePool$AsyncTestIdleResourceTask.run(BasicResourcePool.java:1999)
        at com.mchange.v2.async.ThreadPerTaskAsynchronousRunner$TaskThread.run(ThreadPerTaskAsynchronousRunner.java:255)

播放线程正在等待获取数据库连接:

"play-thread-3" prio=10 tid=0x00007f53c400b000 nid=0x5b3e in Object.wait() [0x00007f53ddd57000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000000db9f38f8> (a com.mchange.v2.resourcepool.BasicResourcePool)
        at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:579)
        - locked <0x00000000db9f38f8> (a com.mchange.v2.resourcepool.BasicResourcePool)
        at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:584)
        ... (näitä vaihtelevat määrät)
        at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:584)
        - locked <0x00000000db9f38f8> (a com.mchange.v2.resourcepool.BasicResourcePool)
        at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:584)
        - locked <0x00000000db9f38f8> (a com.mchange.v2.resourcepool.BasicResourcePool)
        at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)
        at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
        at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
        at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:71)
        at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
        at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
        at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:160)
        at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:81)
        at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1473)
        at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:60)
        at play.db.jpa.JPAPlugin.startTx(JPAPlugin.java:377)
        at play.db.jpa.JPAPlugin.beforeInvocation(JPAPlugin.java:345)
        at play.plugins.PluginCollection.beforeInvocation(PluginCollection.java:473)
        at play.Invoker$Invocation.before(Invoker.java:217)
        at play.Invoker$Invocation.run(Invoker.java:277)
        at play.server.PlayHandler$NettyInvocation.run(PlayHandler.java:229)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)

一些注意事项:

  • 有可能(至少在理论上)许多连接恰好在读取堆栈转储的同时被测试,尽管我发现这不太可能。
  • In another question https://stackoverflow.com/questions/9817681/a-thread-was-hanged-on-java-net-socketinputstream-socketread0native-method-an it was mentioned that data deadlocks or hardware/network problems might cause this kind of behaviour.
    • 至少不应该有任何正在进行的架构修改。

br、图子


回答我自己:

  • No reason found for the connection hanging :(
    • RDS 有 MySQL 的 error.log,不幸的是那里什么也没有
  • Play has some default settings for c3p0 ComboPooledDataSource (in DBPlugin.onApplicationStart() )
    • idleTimeExcessConnections :来自 application.conf db.pool.maxIdleTimeExcessConnections (默认 0)
    • checkoutTimeout :来自 application.conf db.pool.timeout (默认 5000)
    • 空闲连接测试周期:10
    • setTestConnectionOnCheckin : true
    • 另外conf/c3p0.properties可以用来设置自定义属性
  • 尚未找到设置连接测试超时的方法(简短说明)默认连接测试器 http://www.mchange.com/projects/c3p0/#maxAdministrativeTaskTime源代码查找可能不支持)

我们继续设置c3p0.automaticTestTable,看看后面会不会有问题。

更新:不幸的是我们还没有摆脱问题:(同样使用automaticTestTable连接测试似乎陷入了java.net.SocketInputStream.socketRead0(Native Method)


再次回答自己:

我们最终尝试了使用 c3p0:s 的“设置连接测试查询超时”方法最大管理任务时间 http://www.mchange.com/projects/c3p0/#maxAdministrativeTaskTime。这有点麻烦,所以需要看看这是否可以成为最终的解决方案(如果有效)。

到目前为止还没有问题,我们将看看它是如何工作的。日志中也没有 c3p0 错误/堆栈跟踪,我希望日志中显示此中断?要么尚未发生超时,要么我们应该调整日志记录配置以显示 c3p0 日志。

更新(2013-04-04):此后问题(可能)不会经常发生,但时不时会发生:(


再次回答自己:

我们首先使用为 MySQL 驱动程序指定的 socketTimeout,这样连接测试就不会卡住。

看起来底层 TCP 连接结束了,因此服务器没有回复(TCP ACK 或任何东西)。

更新:最终的解决方案是通过为 AWS 支持提供 tcpdump,他们在 AWS 基础设施中发现了一些案例。他们建议我们在 EC2 实例的安全组中打开临时端口范围。更多讨论请参见AWS论坛 https://forums.aws.amazon.com/thread.jspa?messageID=440379.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Amazon RDS MySQL 和 Play Framework 1.2.5(c3p0 默认设置)时,连接偶尔会挂起 的相关文章

  • PHP mysql_num_rows 死错误

    我想创建一个页面 用户可以在其中添加他们的信息 我已经创建了该页面 但我真正的问题是代码 我有一些问题 这部分代码
  • php echo 不工作

    我的代码似乎不起作用 单选按钮出现 但旁边什么也没有 似乎 mysql fetch array 由于某种原因无法工作 因为我已经玩过代码并反复测试它以查找代码似乎遇到的位置出现问题并停止工作 有人可以告诉我出了什么问题吗 欢呼声我是新手 最
  • mysql计算唯一行值

    TABLE quotation id clientid 1 25 2 25 3 25 4 25 5 26 如何查询有多少个不同的客户端TABLE quotation 我不希望重复的条目被计算多次 我需要的答案是2 在 1 行中 因为唯一的非
  • 从数据库中给定时间起经过的时间

    我有一个 HTML 表 其中包含从数据库中提取的记录 我正在使用 PHP MySQL 我的表中名为 Timer 的列未从数据库中检索 我需要在此处显示经过的时间 从数据库中的特定时间开始 例如 假设现在的时间是2013年2月21日下午6点2
  • 优化mysql中日期类型字段的查询

    我目前准备了以下查询 select sum amount as total from incomes where YEAR date 2019 and MONTH date 07 and incomes deleted at is null
  • mysql中的按位移位

    如何在 MySQL 中进行按位移位 有没有具体的指令或者操作符 如果不是 如何最佳地模拟它 看一下按位运算符MySQL first http dev mysql com doc refman 5 0 en bit functions htm
  • 尝试通过比较不同的表从 SQL 查询输出正确的值

    我对 SQL 非常陌生 需要有关如何使用正确的查询完成此任务的帮助 我有 2 张桌子需要使用 表 TB1 有 id Name 1 bob 2 blow 3 joe 表 TB2 有 compid property 1 bob 2 blow 我
  • MySQL 获取时间优化

    o我有一个包含 200 万个寄存器的表 但它很快就会增长得更多 基本上 该表包含具有相应描述符的图像的兴趣点 当我尝试执行选择在空间上靠近查询点的点的查询时 总执行时间花费太长 更准确地说 持续时间 获取 0 484 秒 27 441 秒
  • PHP MySQL 查询带有 %s 和 %d

    SELECT COUNT AS test FROM s WHERE id d AND tmp mail lt gt 什么是 s and d for 这些是使用的格式符号 例如经过sprintf 例子 Output SELECT COUNT
  • grails/mysql 时区更改

    完成更改应用程序时区的最佳方法是什么 在我看来 必须发生以下情况 服务器 TZ 已被系统管理员更改 mysql必须重新启动 数据库中每个基于时间的列都必须使用convert tz 或等效方法更新所有值 因此 要么必须编写一个 mysql 脚
  • MySQL 将 ÅäÖ 视为 AAO?

    这两个查询给了我完全相同的结果 select from topics where name Harligt select from topics where name H rligt 这怎么可能 看起来mysql在搜索时会将 翻译成aao
  • 数据库中的持久日期不等于检索日期

    我有一个具有 Date 属性的简单实体类 此属性对应于 MySQL 日期时间列 Entity public class Entity Column name start date Temporal TemporalType TIMESTAM
  • MySQL #1093 - 您无法在 FROM 子句中指定用于更新的目标表“赠品”

    I tried UPDATE giveaways SET winner 1 WHERE ID SELECT MAX ID FROM giveaways 但它给出了 1093 您无法指定目标表 赠品 进行更新FROM clause 本文 ht
  • 为什么我的浮点数大于 1 时在 MYSQL 中存储为 .9999?

    我将进程时间作为 float 4 4 存储在 MySQL 数据库中 start time microtime TRUE things happen in my script end time microtime TRUE process t
  • 无法删除数据库 mysql:错误 3664 (HY000)

    我的应用程序中有一个名为X Files 我想要drop它 但每当我运行命令时drop database X Files我收到以下错误 mysql gt drop database X Files ERROR 3664 HY000 Faile
  • 显示一个表中的所有记录以及另一表中的匹配记录

    您好 我有一张下表 其中记录了活动和积分 Activites A ID Site ActivityValue ActivityName 1 site1 7 ActivityName1 2 site1 6 ActivityName2 2 si
  • 如何检查 $row['column_name'] 是否返回空 php mysql

    我有一个带有列的表格 id name phone describe 当我从这个表中获取值时 我正在使用 row mysql fetch array query 现在我想检查是否 row describe 返回空值 如何查看php 您可以使用
  • Python 的 mysqldb 晦涩文档

    Python 模块 mysqldb 中有许多转义函数 我不理解它们的文档 而且我努力查找它们也没有发现任何结果 gt gt gt print mysql escape doc escape obj dict escape any speci
  • php无法在docker-compose中连接到mysql

    这是我的 docker compose version 2 services nginx image nginx 1 11 8 alpine ports 8081 80 volumes code usr share nginx html h
  • 更新 SQLAlchemy 中的特定行

    我将 SQLAlchemy 与 python 一起使用 我想更新表中等于此查询的特定行 UPDATE User SET name user WHERE id 3 我通过 sql alchemy 编写了这段代码 但它不起作用 session

随机推荐

  • MySQL INT 含义

    我想知道如果我采用值为 8 的 INT 这是否意味着我只能从 1 到 99999999 或从 1 到 4294967295 UNSIGNED 该文档似乎对此非常清楚 数字类型属性 MySQL 支持选择性指定显示的扩展 基关键字后面的括号中的
  • CSRF - 仅在第一次登录

    当我在服务器上部署我的应用程序时 第一次我可以毫无问题地登录 但是当我注销时 我在注销发布请求中收到 403 Forbidden 然后我无法成功登录 因为我在登录请求上收到 403 错误 Ctrl F5 尝试再次登录 它可以工作 但只能一次
  • .NET 单委托与多播委托[重复]

    这个问题在这里已经有答案了 我深入阅读了一些有关委托的内容 令人困惑的是具有一种方法的委托可能与多播委托不同 然而 通过反射 您可以清楚地看到 即使只有一个方法 委托也确实派生自MulticastDelegate 并不是立即地源自于Dele
  • 在java中获取两个日期之间的天数[重复]

    这个问题在这里已经有答案了 您好 有两个日期格式的日期 如何获得两者之间的天数差异 Date date1 Date date2 int numberDays 建议使用 JodaTime API 来处理日期 import java util
  • 跳过 Laravel 的 FormRequest 验证

    我最近添加了已被攻击 https github com valorin pwned validator到我的表单请求类来检查破解的密码 鉴于这会进行外部 API 调用 有没有办法让我在测试期间完全跳过此验证规则或 FormRequest 类
  • catch 和finally 中抛出异常。 CLR 行为与 try-catch 块[重复]

    这个问题在这里已经有答案了 我编写了简单的 C 控制台应用程序 class Mystery static void Main string args MakeMess private static void MakeMess try Sys
  • 自定义地图类型:重复地图和标记。如何向地图添加填充?

    使用 Google Maps API v3 我为虚构的游戏世界创建了自定义地图类型 默认情况下 地图 甚至自定义地图类型 都会水平重复 见下图 Larger Image here https i stack imgur com 6cPuZ
  • 当有新版本可用时,Android 以编程方式更新应用程序

    在我的应用程序中 我想检查应用程序商店中是否有我的应用程序的任何更新版本 如果有的话 那么必须通过警报消息通知用户 如果他 她选择升级 我想更新新版本 我想通过我的应用程序完成这一切 这可能吗 我有同样的问题 但已通过 JSOUP 库解决
  • 如何让 nginx/gunicorn 使用结构化日志记录?

    我目前看到 172 19 0 1 09 Feb 2018 07 00 32 0000 GET ping HTTP 1 1 200 1 curl 7 47 0 在我的日志中 但我使用像这样的结构化日志记录 https stackoverflo
  • 防止桌子缠绕

    当表格位于外部表格单元格内部时 如何防止表格换行 看看我的问题底部的简化示例 我的 aspx tablerow tr td align left valign top br td tr
  • 使用 DropzoneJS 时获取文件内容

    我真的很喜欢 DropZoneJS 组件 目前正在将它包装在 EmberJS 组件中 您可以看到演示在这里 https ember cli dropzonejs firebaseapp com 无论如何 包装器工作得很好 但我想监听 Dro
  • `raise "foo"` 和 `raise Exception.new("foo")` 有什么区别?

    两者之间有什么区别 技术 哲学 概念或其他方面 raise foo and raise Exception new foo 从技术上讲 第一个会引发 RuntimeError 消息设置为 foo 第二个引发异常 消息设置为 foo 实际上
  • 通过 RPostgreSQL 将表从 R 导出到 PostgreSQL

    我在用RPostgreSQL我已经完成了一些过程 并且在 R 中得到了一个表 我想将该表从 R 放入 PostgreSQL 中 以便进一步分析 我将使用 PostgreSQL 代码 问题是 当我在 R 中有一个 PostgreSQL 中不存
  • 如何使用 preg_match_all() 获取子组匹配的所有捕获? [复制]

    这个问题在这里已经有答案了 更新 注意 我想我可能正在寻找的是得到捕获一组 https stackoverflow com questions 6571106 can you retrieve multiple regex matches
  • 清除 appEngine Flex 静态文件缓存

    我在我的服务器上设置了 1 年的缓存控制 如何对 AppEngine 说 清楚 从服务器获取新版本 配置为Flex自定义环境 runtime custom env flex env variables writecontrolEnv pro
  • 单击按钮即可搜索数据表,而不是输入内容

    我想知道是否可以将搜索功能移出input对于修改过的表DataTables 目前我有一个执行此函数的自定义输入 输入看起来像这样
  • 动态改变 __slots__

    我正在上一门课 需要提供它 dict 属性通过 init 像这样注入 class Torrent Model def init self d super Torrent self init torrents self dict d 并且需要
  • Go — 如何处理结构类型之间的公共字段

    如果我有两种类型 type A struct X int Y int type B struct X int Y int Z int 考虑到两者都访问同名字段并返回它们的总和 是否有任何方法可以在不需要两种方法的情况下实现以下目标 func
  • APIErrorException:(BadArgument)“recognitionModel”不兼容:AZURE COGNITIVE FACE

    我正在使用 AZURE COGNITIVE FACE API 创建考勤系统 我将出勤情况存储在 Excel 表格中 但出现错误 recognitionModel 不兼容 从文档中我了解到有两种识别模型 recognition 01 reco
  • 使用 Amazon RDS MySQL 和 Play Framework 1.2.5(c3p0 默认设置)时,连接偶尔会挂起

    我们遇到了问题使用 RDS Mysql 的 Amazon 托管 Play 应用程序 http www mchange com projects c3p0 maxAdministrativeTaskTime 有时应用程序最终会无响应 今天我使