Tag: scheduler

Windows服务中的Quartz Job Scheduler

我有这个Windows服务项目的OnStart方法看起来像这样 protect void OnStart(string[] args) { IScheduler someScheduler = _schedFactory.GetScheduler(); // _schedFactory is a priva field of the service class IJobDetail someJob = JobBuilder.Create() .WithIdentity(“SomeJob”) .Build(); ITrigger someTrigger = TriggerBuilder.Create() .StartAt(new DateTimeOffset(DateTime.UtcNow.AddSeconds(30))) .WithSimpleSchedule(schedule => scheduler.WithIntervalInMinutes(3).RepeatForever()) .Build(); someScheduler.SchedulerJob(someJob, someTrigger); someScheduler.Start(); } 我使用Visual Studio Developer命令提示符来安装该服务。 该命令是installutil.exe 。 现在当安装服务时,我去任务管理器并启动它。 在OnStart方法的顶部有Thread.Sleep(10000) ,所以我可以设法使用调试器附加到服务。 因此,当它附加时,我会通过代码,没有什么特别的事情发生,我的意思是没有exception发生。 我甚至看到应该执行工作的时间和正确的时间。 当我坐在调试模式并等待作业的Execute方法执行时,它没有。 我的意思是,到时候,visual studio正在加载符号,但作业本身并没有被执行。 可能是什么问题? 还有一件事我在这个OnStart方法中创建了两个作业。 […]

Quartz.NET设置MisfireInstruction

我正在使用Quartz.NET在C#中工作,并且在CronTrigger上设置misfire指令时遇到问题。 我正在运行安装了Quartz DB的SQL后端。 我有以下代码适用于创建作业和运行调度程序。 IScheduler _scheduler; IJobDetail job; ISchedulerFactory sFactory; ICronTrigger trig; sFactory = new StdSchedulerFactory(); _scheduler = sFactory.GetScheduler(); _scheduler.Start(); job = JobBuilder.Create().WithIdentity(“testJob”, “testGroup”).Build(); trig = (ICronTrigger) TriggerBuilder.Create().WithIdentity(“testTrigger”, “testGroup”).WithCronSchedule(“0/10 * * * * ?”).Build(); int i = trig.MisfireInstruction; _scheduler.ScheduleJob(job, trig); 我可以访问的唯一misfireinstruction是trig.MisfireInstruction ,它是一个int,我无法设置它。 在CronScheduleBuilder中还有一些以WithMisfireHandlingInstruction开头的函数。

为什么Observable.Generate()抛出System.StackOverflowException?

我正在编写一个C#(.NET 4.5)应用程序,用于聚合基于时间的事件以进行报告。 为了使我的查询逻辑可以重用于实时和历史数据,我使用了Reactive Extensions(2.0)及其IScheduler基础结构( HistoricalScheduler和friends)。 例如,假设我们创建了一个事件列表(按时间顺序排序,但它们可能重合!),其唯一的有效负载是它们的时间戳,并希望知道它们在固定持续时间的缓冲区中的分布: const int num = 100000; const int dist = 10; var events = new List(); var curr = DateTimeOffset.Now; var gap = new Random(); var time = new HistoricalScheduler(curr); for (int i = 0; i < num; i++) { events.Add(curr); curr += TimeSpan.FromMilliseconds(gap.Next(dist)); } var stream = Observable.Generate( 0, […]

多个应用服务器中的相同Quartz.Net调度程序。

我是Quartz.NET(v.3.0.3)中的新function。我有控制台应用程序,它是石英主机和广播tcp.x:555 / QuartzScheduler 。 在我的公司,我们有2台app服务器机器,它们自己是主机 – 奴隶。如果主应用程序是关闭奴隶取代它的位置。我们将在这些服务器中设置控制台应用程序(作为服务)。 如果我们这样做,Quartz.NET会发生什么,这些调度程序是相同还是不同? PS:我们正在使用MsSQL jobStore(AdoNetJobStore)。 谢谢你的回复。

安排计时器每月执行一次 – C#

我需要每月一次从SQL Server向MySQL传输一些数据。 我已经完成了这个转移的东西,但我不知道(我还没有在互联网上找到)如何设置一个计时器,每个月在特定日期执行此转移。 我不想仅以毫秒为单位设置计时器间隔,因为天数从一个月到另一个月不等。 任何帮助表示赞赏……

使用JSON.Net序列化数据的问题

我在我的应用程序中使用Kendo Scheduler使用Web Api从我的数据库中提取数据。 我创建了一个Web Api函数,并在那里硬编码了一些数据,以确保Kendo Scheduler可以读取我的数据。 这是我的Api函数代码: [Route(“api/v1/Events/GetPersonalEvents”, Name = “ApiEventsGetPersonalEvents”)] [HttpGet] public DataSourceResult GetPersonalEvents([System.Web.Http.ModelBinding.ModelBinder(typeof(WebApiDataSourceRequestModelBinder))]DataSourceRequest request) { var q = new ViewModels.Events.EventViewModel(); q.Id = 1; q.Title = “This is a test”; q.Start = DateTime.Now; q.End = DateTime.Now.AddHours(1); q.Description = “Test entry”; var list = new List(); list.Add(q); return list.ToDataSourceResult(request); } Kendo Scheduler没有在日历上显示任何内容。 使用Fiddler,我能够看到Kendo Scheduler正在调用我的API而我的API正在返回数据。 这是发送的JSON: […]

Quartz.Netdependency injection.Net核心

在我的项目中,我必须使用Quartz,但我不知道我做错了什么。 的JobFactory: public class IoCJobFactory : IJobFactory { private readonly IServiceProvider _factory; public IoCJobFactory(IServiceProvider factory) { _factory = factory; } public IJob NewJob(TriggerFiredBundle bundle, IScheduler scheduler) { return _factory.GetService(bundle.JobDetail.JobType) as IJob; } public void ReturnJob(IJob job) { var disposable = job as IDisposable; if (disposable != null) { disposable.Dispose(); } } } QuartzExtensions: public static […]

如何每24小时在Asp.net MVC中执行一个方法

我在MVC中有方法 public void Sendmails() { //sending mails for every 24 hours. } 我可以安排上述方法每24小时执行一次。 我知道我们可以使用sql server agent和windows task scheduler设置日程安排。 但是由于一些问题我只想执行当前的dll,这在M​​VC中是否可行?