我需要处理超过5到600万条财务记录,其中每条记录都是一笔交易。
这是一个Spring,Hibernate解决方案。
我可以列出以下四个步骤,以使我的背景清晰
读取表格中的每条记录。示例(薪水)
仅访问特定的两列(主键字段-ID),(工资 - 使用RSA加密的值)
解密工资字段属于工资ID。
使用新的安全密钥再次加密。
解决方案需要作为后台进程(可能是Spring Thread Pool Task Executor)系统必须完成24 * 7.
每条记录都是一个事务,那么加载记录进行处理的最佳方法是什么? 如果可能的话,请给我一个示例链接。
我认为最佳实践是加载10条记录,然后加载10条。如何用spring,hibernate实现这样的解决方案。
答案 0 :(得分:0)
我会忘记实体框架作为这种工作的hibernate并坚持数据库方面。 (如果您在交易期间没有其他工作要做,即邮件发送,审核等......代码仅在服务器端可用)
创建执行作业的存储过程,并在已知的低负载时间内运行一次。在5到30分钟内完成。
或者,创建一个一行占用一行的存储过程并通过(数据库)作业运行它有一些延迟,这样性能不会受到影响。
答案 1 :(得分:0)
我会使用Quartz进行预定的工作,它很容易与spring集成,并且在过去对我很有用。要访问数据库,我同意
你可以使用Hibernate,但你必须确保使用 无国籍会议,或定期刷新会议 在手册中解释。我只是简单地使用JDBC。 - JB Nizet
答案 2 :(得分:0)
我的方法是:
规划不同的方案和不同的工作,这样如果工作失败,您可以运行另一个逻辑