c# quartz.net 一项大工作 sql 连接

c# quartz.net one big job sql connection

我有一份大工作,代码:

 public class TbcMailSender : IJob
    {
        public void Execute(IJobExecutionContext context)
        {

            using(EFDbContext _db = new EFDbContext()){
                _db.JobTests.Add(new JobTest
                {
                    Name = "trigger",
                    JobDate = DateTime.Now
                });
                _db.SaveChanges();

               var parserHelper = ParserHelper.GetParserHelper(_db);          
                try
                {
                    parserHelper.Bfm();
                }
                catch (Exception)
                {

                }
                try
                {
                    parserHelper.Bpn();
                }
                catch (Exception)
                {

                }

                try
                {
                    parserHelper.Commersant();
                }
                catch (Exception)
                {

                }
                try
                {
                    parserHelper.Ghn();
                }
                catch (Exception)
                {

                }
                try
                {
                    parserHelper.Ipn();
                }
                catch (Exception)
                {

                }
                try
                {
                    parserHelper.PirveliRadio();
                }
                catch (Exception)
                {

                }
                try
                {
                    parserHelper.Forbes();
                }
                catch (Exception)
                {

                }
                try
                {
                    parserHelper.Marketer();
                }
                catch (Exception)
                {

                }                

            }

        }
    }

每种方法大约需要 2-3 分钟(Bfm、Bpn...营销人员)。以后我会添加更多的方法,会不会出现sql连接超时异常?为了额外的安全,我应该增加连接超时吗?每个方法都需要与数据库交互

在您的情况下,您应该只关心命令超时,它指定单个命令在终止之前可以执行多长时间。在 EF6 中,您可以这样设置:

_db.Database.CommandTimeout = 600;

对于旧版本,您可以查看 this answer

连接超时仅限制允许建立连接的时间。