我的项目要求定期向某些类型的客户发送短信,比如说每两天发送一次。
客户信息存储在Oracle DB中的一个表中。每隔两天,Spring Boot中的调度器就会查询表,发送SMS,然后更新表以指示SMS已发送。此解决方案在单实例生产环境中就足够了。
但实际情况是,生产环境有四个实例。因此,每两天有4个调度程序实例运行。如果多个实例同时查询表,则客户可能会收到多条短信。
我想知道是否有适当的解决方案来防止另一批正在查询表?只有在一个批处理完成更新表的情况下,其他批处理才能继续。
我只是在想,在批处理上加锁是否可行。假设批次1正在查询表,那么批次2 3 4在批次1发布之前不能访问该表。
https://stackoverflow.com/questions/51419734
复制相似问题