flagify-com/OctoMation

资源不足导致定时任务未执行

Closed this issue · 2 comments

-2024-05-10 10:00:21.417 INFO {} 1214 --- [] [QuartzScheduler_clusteredScheduler-mgmt.sp.com1714963495021_MisfireHandler] o.s.s.quartz.LocalDataSourceJobStore : Handling 6 trigger(s) that missed their scheduled fire-time.
-2024-05-10 10:01:14.109 ERROR {} 1214 --- [] [QuartzScheduler_clusteredScheduler-mgmt.sp.com1714963495021_ClusterManager] o.s.s.quartz.LocalDataSourceJobStore : ClusterManager: Error managing cluster: Couldn't commit jdbc connection. Error writing file 'mysql-bin' (errno: 11 "Resource temporarily unavailable")

org.quartz.JobPersistenceException: Couldn't commit jdbc connection. Error writing file 'mysql-bin' (errno: 11 "Resource temporarily unavailable")
at org.quartz.impl.jdbcjobstore.JobStoreSupport.commitConnection(JobStoreSupport.java:3749)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.doCheckin(JobStoreSupport.java:3331)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.manage(JobStoreSupport.java:3935)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.run(JobStoreSupport.java:3972)
Caused by: java.sql.SQLException: Error writing file 'mysql-bin' (errno: 11 "Resource temporarily unavailable")
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ConnectionImpl.commit(ConnectionImpl.java:806)
at com.zaxxer.hikari.pool.ProxyConnection.commit(ProxyConnection.java:387)
at com.zaxxer.hikari.pool.HikariProxyConnection.commit(HikariProxyConnection.java)
at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.quartz.impl.jdbcjobstore.AttributeRestoringConnectionInvocationHandler.invoke(AttributeRestoringConnectionInvocationHandler.java:73)
at com.sun.proxy.$Proxy384.commit(Unknown Source)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.commitConnection(JobStoreSupport.java:3747)
... 3 common frames omitted

-2024-05-10 10:01:21.417 INFO {} 1214 --- [] [QuartzScheduler_clusteredScheduler-mgmt.sp.com1714963495021_MisfireHandler] o.s.s.quartz.LocalDataSourceJobStore : Handling 8 trigger(s) that missed their scheduled fire-time.
-2024-05-10 10:01:26.599 INFO {} 1214 --- [] [Timer-0] c.s.zklistener.ZkListenerManager : not initialized set size:0
-2024-05-10 10:02:14.116 ERROR {} 1214 --- [] [QuartzScheduler_clusteredScheduler-mgmt.sp.com1714963495021_ClusterManager] o.s.s.quartz.LocalDataSourceJobStore : ClusterManager: Error managing cluster: Couldn't commit jdbc connection. Error writing file 'mysql-bin' (errno: 11 "Resource temporarily unavailable")

errno: 11 的错误可能是由于数据库中文件打开数不足造成。
排查步骤:
1.进入数据库镜像,登录数据库执行:show variables like '%open_%';
如:
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| innodb_open_files | 1024 |
| open_files_limit | 1024 |
| table_open_cache | 1024 |
+-------------------+-------+
2.如果文件打开数较小,调整数据库配置:
进入宿主机,修改/opt/shakespeare/docker/mysql/my.cnf中对应的配置
3.重启数据库容器

如果文件打开数调整后仍出现错误,查看数据库镜像中cpu和内存的限制:
企业微信截图_e2666d19-4268-465b-81c5-fab35adf41b4
cpu建议2以上
内存建议4g以上