python多进程存数据不改变顺序

python多进程存数据不改变顺序,第1张

你的问题太模糊了。我先从常见的错误说,然后再从相对从大的方面来描述。

进程挂掉可能是什么原因?

一方面是程序可能有逻辑错误,导致了诸如下标越界,数据异常等问题。

另一方面,可能是系统原因,比如代码质量一般,系统资源消耗厉害,进程退出。

还有可能是上下游服务问题,比如 MySQL 等服务异常,上游 API 异常,配置错误。

简单说了下各种可能的异常,但对一个项目而言,天下问题千千万,不可能有一条完美的准则。

遇到问题,通常要从几步出发,从排查出错原因、寻找解决方案和如何预防出发。

排查错误的原因,这是最重要的一步,只有对症下药才能解决问题。

首先确认下是否容易复现的问题,容易复现的话,通常会给出错误信息。然后,我们只要在开发时调试下就好了,常见的调试方法有 print 打印来观察问题,或者是使用一些 debug 调试工具,我相信你会用。print 的特点是简单好用,但每次都有修改代码,比较繁琐。而调试工具就比较方便,看的信息会比较全,一些 IDE 都集成了调试工具。

对于不容易复现的问题,可以通过记录日志的方式排查。有人会说,记录日志是资源消耗,曾经我也怎么想过。但对于现在的硬件配置而已,记录日志的成本是非常小的,一个好像的项目肯定是集成日志的,不然就太 low 逼了,我可不敢用。

寻找解决方案,这一步需要基于前面诊断出的结果进行排查。

一个简单的案例。比如,提示 MySQL 连接数过多,什么情况可能导致这个问题?是 MySQL 配置的连接数本身就很少,还是程序设计不合理导致连接无法正确复用,亦或是业务量真的大了,当前最大连接数无法承受呢。每种情况的处理方式都不同。

如何预防问题,我主要想学详细的日志,和增加一些恢复机制。

详细的日志就不说了,异常要记得捕获,并且记录发生异常的原因,这一步对排查问题非常有帮助。

另外,不是所有的异常都应该立刻退出进程,如果不是一些非常严重的错误,通过日志提示下,程序还可以继续工作。不过,有些异常还是要做一些修复处理,比如数据库连接断开,可尝试重新连接,上游系统服务异常,可以执行多次调用,而不是直接退出。

就简单说这么多吧!如果有些地方讲的不是很好,见谅。欢迎评论补充,谢谢!

其实最简单的方法是用timer控件,timer控件本事就是对一个线程的封装所以你用两个timer控件就可以模拟两个线程了或者用两个backgroundworker控件,这个更逼真,不用定时触发具体用法,我空间里有教程


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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存