因为宜搭是单线程的问题,无法处理并发问题
出库时,会出现同时有人出库,但是在出库的这一瞬间,很有可能是同时操作的,所以无法做到验证; 因为出库页面要显示库存余量,且出库数量要小于等于库存数量 但是库存数量并不会随着实际的库存数量实时变化,及有可能是出现一下情况 当前出库页面显示的库存数10 同时出库2 和4 就变成了10-2 以及10-4 无法设置成10-2-4 这样; 请问有没有什么方案可以解决这个问题呢?
针对这个问题,可以考虑以下方案:
可以在出库操作时对库存记录进行加锁,保证同一时刻只有一个人可以进行出库操作,从而避免并发问题。
可以将出库操作放入消息队列中,通过异步处理来避免并发问题。当出库请求到达时,先将请求放入消息队列中,然后异步处理请求,这样就能够避免并发问题。
可以在库存记录中增加一个版本号字段,在进行出库操作时,先读取库存记录的版本号,然后进行出库操作。如果出库操作成功,则将版本号加1,如果出库操作失败,则说明库存记录已经被其他人修改过,需要重新读取库存记录的版本号并进行出库操作。
可以在出库操作成功后,实时更新库存记录中的库存数量,从而确保库存数量是实时的,可以在出库页面显示实时的库存余量。
以上是几种可能的解决方案,需要根据实际业务场景进行选择和实现。
这个你可以在审批开始就减去库存,比如库存有余量10,张三申请出库数2,张三审批流程一提交就减去库存2,这时库存余8,同时李四申请出库4,也是一提交就减去库存,这时库存余4,就不会出现等流程审批完才发现库存为负数的情况了。
所以你不要把出库减库存申批流程设置成结束时,而是审批流程一提交就减库存就可以了。
在同时进行出库操作的情况下,确实很难做到完全准确的库存验证。但是,您可以采取以下措施来尽量减少这种问题的发生:
在出库操作前,先查询库存数量,并将其保存到一个缓存中。这样,当有多个用户同时进行出库操作时,您可以根据缓存中的库存数量来进行判断和处理。
对于库存数量实时变化的情况,您可以考虑使用数据库来存储库存信息,并定期更新库存数量。这样,即使有多个用户同时进行出库操作,您也可以根据最新的库存数量来进行判断和处理。
对于出库页面显示的问题,您可以考虑将库存余量和实际库存数量分开显示。例如,可以在出库页面上分别显示“当前库存余量”和“实际库存数量”,并在出库操作后手动更新库存余量。这样,即使出现多个用户同时进行出库操作的情况,也可以保证库存余量的准确性。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。