SCPPO:测算过程中问题的解决总结

SCPPO:测算过程中问题的解决总结,第1张

概述【前言】       一月一度的企业测算来了,遇到一个非常棘手的问题,解决的过程挺有意思,在此与大家共享。 【有趣的过程】           一、前提:          1、需要的 *** 作:30个存储过程,每个存储过程300行代码,平均每十行代码 *** 作一个表;          2、目前耗时分两种情况:           (1)如果是单家企业执行没有企业并发的话,平均耗时在十分钟左右;       【前言】

      一月一度的企业测算来了,遇到一个非常棘手的问题,解决的过程挺有意思,在此与大家共享。

【有趣的过程】    

      一、前提:

         1、需要的 *** 作:30个存储过程,每个存储过程300行代码,平均每十行代码 *** 作一个表;

         2、目前耗时分两种情况:

          (1)如果是单家企业执行没有企业并发的话,平均耗时在十分钟左右;

          (2)如果有两家以上的企业同时执行的话,会出现并发的问题,这种情况下好的情况会大概半个小时执行完毕,坏的情况下直接执行失败。

         3、执行流程:点下测算功能后会触发这三十个存储过程顺序执行,每执行完一个存储过程中后会往JobLog表中写一条执行该存储过程信息的一条信息记录。

      二、现在的解决办法:

          1、思路:由于企业已经开始测算,如果大的改动时间上已经来不及,所以为了尽快解决问题,让其走单线程即一个企业执行完再让另外一个企业执行。

          2、实现这种思路想到了两种实现方式:

            (1)每次企业进行测算前先去JobLog表中去进行校验,查看当前是否有企业正在进行测算;

            (2)每个企业在进行测算的时候先往缓存中(目前系统采用的是Redis,系统中应用可以参考《Redis系列》)更新一下记录是否有企业在进行测算的标识为开始,结束的时候再将该标识更新为已完成,每次企业进行测算前去缓存中读取该值,以此来确定是否可以开始本次测算。

           3、两种实现方式优缺点对比:

              (1)采用缓存的方式 

                   ①优点:校验速度快

                   ②缺点:提供不了存储过程执行的详细信息(比如:如果当前有企业在执行,该企业是哪个企业以及企业什么时候开始执行的,执行的什么程度等等);另外增加Redis多了一个故障点;

               (2)采用去数据库中读取JobLog表读取方式优缺点正好和采用缓存的相反。

      三、扩展解决办法:

         1、根据业务梳理存储过程,这是最根本的解决办法;

         2、采用队列

         3、就该问题请教一些大牛,他们给出的其中一些比较好用的技术:

           (1)Ignite(学习资料:)  

           (2)组长推荐的

           (3)方推荐的

【总结】

                 快速的找到解决问题的方法,在诸多解决办法中挑选一个最适合当前所处环境的。

总结

以上是内存溢出为你收集整理的SCPPO:测算过程中问题的解决总结全部内容,希望文章能够帮你解决SCPPO:测算过程中问题的解决总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1170478.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存