我的程序代码是这样的,在一个事务里有3个insert操作,1个update操作,3个select操作,还有一个邮件发送功能也在这个事务中。
mysql锁超时时间应该没人改,我想会不会是邮件发送影响了事务,假如网络问题或者地址账号错误,邮件是否会延迟发送或者重试发送,而在这个过程中邮件未发送完成,事务不会提交,一直持有锁导致锁超时,求教各位大佬,有没有可能是这个原因呢?
DB事务尽可能和大量IO的功能区分出来!
好的,以后一定注意,谢谢
<p>完全有可能,邮件发送方和接收方连接超时、socket、会话超时都会影响到</p>
我改下实现方式试试看,谢谢
<p>邮件发送本就不应该同步等待是否发送成功、是否到达目标地址,既然是异步,所以在事务中发送邮件没多大意义吧。</p>
这是个类似流程审批的功能,每个节点处理后发送对应内容格式的邮件,所以做成同步的,只是实现方式错误,不应该把邮件发送加到事务中
<p>可以建个表吧要发的邮件内容存起来,然后一个进程去专门发邮件</p>
这样也可以的,谢谢
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。