1

我有一个单线程 Quartz 作业,在更改记录的“状态”列后启动。作业被传递给它然后查找的记录的主 ID。由于某种奇怪的原因,石英作业看到了原始状态值。

该作业具有每秒重试查找的逻辑,最多一分钟。起初我认为 hibernate 可能会返回旧对象,所以我添加了一个session.clear(),但这没有任何区别。然后我添加了一个jdbcTemplate.queryForMap绕过休眠的数据,但这也看到了旧数据。

当 Quartz 作业记录旧值时,我在显示视图和手动针对数据库调用的 sql 查询中看到了新值。我什至检查了版本属性,发现它已经改变,但石英作业具有旧值。

Quartz 作业是否有任何原因无法识别更改?

奇怪的是,这种逻辑在某些服务器上运行得非常好,在其他服务器上它一直失败,而在其他服务器上它会定期失败。

环境包括:

  • 圣杯 1.3.7
  • MySQL
  • Linux
  • 雄猫
4

0 回答 0