【问题标题】:Is there a way to pass values from a Quartz Job to an MVC Controller?有没有办法将值从 Quartz Job 传递到 MVC 控制器?
【发布时间】:2021-12-28 14:33:25
【问题描述】:

我正在开发一个.NET 应用程序,它使用 Quartz 来安排某个 DAL 函数每 10 秒运行一次。 DAL 函数 (CheckIncompleteExists) 返回一个对象,我们从 (TransacID) 中检索一个整数。

工作

    {
        TransactionDAL transactionContext = new TransactionDAL();
        public Task Execute(IJobExecutionContext context)
        {
            Console.WriteLine("--> Database check completed");
            if (transactionContext.CheckIncompleteExists() != null)
            {
                return Task.FromResult<int>(transactionContext.CheckIncompleteExists().TransacID);
            }
            return Task.FromResult<int>(0);
        }
    }

调度器

public class JobScheduler
    {
        public static void Start()
        {
            Task<IScheduler> schedulerjob = StdSchedulerFactory.GetDefaultScheduler();
            IScheduler scheduler = schedulerjob.Result;
            scheduler.Start();

            IJobDetail job = JobBuilder.Create<Incompletescanjob>().Build();
            //trigger the job
            ITrigger trigger = TriggerBuilder.Create()
            .WithIdentity("trigger1", "group1")
            .StartNow()
            .WithSimpleSchedule(x => x
            .WithIntervalInSeconds(10) //run the method every 10 second
             .RepeatForever())
                .Build();

            scheduler.ScheduleJob(job, trigger);
        }
}

Job 和 Scheduler 工作正常并且能够返回正确的值。我想要做的是能够将整数值从 Job 传递到控制器 HomeController 中,以用于其他控制器功能。 我该怎么做呢?

【问题讨论】:

    标签: c# asp.net asp.net-mvc quartz-scheduler quartz.net


    【解决方案1】:

    如果该值在系统的所有用户之间共享,那么您可以声明一个静态变量并将该值分配给该变量。可以从应用程序中的任何位置访问此变量。

    否则考虑为每个用户使用会话。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-09
      • 2019-12-17
      • 2020-03-02
      • 2010-11-07
      • 2014-02-19
      • 2023-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多