我刚刚在我的runnable的run()
方法中写了这段代码:
try {
dbConnection = MyApp.datasource.getConnection();
} catch (SQLException e) {
logger.log(Level.SEVERE, "Could not obtain a DB connection! Re-enqueuing this task. Message: " + e.getMessage(), e);
MyApp.executor.execute(this);
return;
}
如您所见,如果任务无法获得数据库连接,它应该重新排队,进入它在运行之前所在的同一队列。
我认为这可能是安全的,但感觉很有趣,我只是想确保没有任何我遗漏的问题。
谢谢!