我正在建立一个结算系统。系统需要为客户生成月度发票。
我现在正在做的是使用For循环检查所有客户的先前发票,并确定是否是为客户生成发票的时间。
如果数据库中有大量客户端,我认为这样做可能会非常繁重。
生成发票的标准方法是什么?是否可以制作记录客户下一个发票日期的cron作业,并仅在生成发票时检查特定客户。
万分感谢
答案 0 :(得分:3)
你提到了一个数据库。你为什么不使用呢?
在“上一次发票的日期”列上添加一个索引,添加一个WHERE子句,仅返回最后一个发票超过一个月前发送的客户。
答案 1 :(得分:1)
生成发票的标准方法是什么?是否可以制作记录客户下一个发票日期的cron作业,并仅在生成发票时检查特定客户。
没有标准的方法。但这项任务确实是批处理作业的典型候选者。如果您同时或每天向所有客户收费并且仅根据某些日期条件选择可计费的客户端,请在月末运行它。对于每个客户,尽你所能。根据数据的大小,JPA可能不合适(或者可能考虑Hibernate的StatelessSession
甚至忘记它)。
对于调度程序部分,我经常看到像Quartz这样的企业调度程序,甚至是像Control-M,Dollar-U,TNG Workload等更大的专用解决方案。
我强烈建议不要为每个客户创建一份工作。这真的不是一个好的解决方案(地狱管理,不会扩展等)。
答案 2 :(得分:0)
无论如何 - 辩论......:)
吉姆