有没有办法将值从 Quartz Job 传递到 MVC 控制器?

Posted

技术标签:

【中文标题】有没有办法将值从 Quartz Job 传递到 MVC 控制器?【英文标题】:Is there a way to pass values from a Quartz Job to an MVC Controller? 【发布时间】: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 中,以用于其他控制器功能。 我该怎么做呢?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于有没有办法将值从 Quartz Job 传递到 MVC 控制器?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 clojure.test 将值从夹具传递到测试?

将值从 Django 视图传递到 AngularJS 插入的模板

将值从 bash 反向传输到 LO 宏

将值从 BackgroundWorker DoWork 传递到 BackgroundWorker Completed

将值从 php 传递到 modal

Jersey:将值从 ContainerRequestFilter 传递到端点