2015-11-13 42 views
0

我有一个很大的工作,代码:C#quartz.net一个大作业SQL连接

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连接超时异常?对于exta安全性,我应该增加连接超时吗?每种方法都需要与数据库进行交互

回答

1

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

_db.Database.CommandTimeout = 600; 

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

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