c#quartz.net一个大任务sql连接

本文关键字:任务 sql 连接 一个 net c#quartz | 更新日期: 2023-09-27 18:21:50

我有一个大任务,代码:

 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…Marketer)。在未来,我将添加更多的方法,是否可能发生sql连接超时异常?对于exta安全性,我应该增加连接超时吗?每种方法都需要与数据库进行交互

c#quartz.net一个大任务sql连接

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

_db.Database.CommandTimeout = 600;

对于旧版本,您可以检查此答案。

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