无法保存任何东西到Quartz.net ado商店
刚开始使用Quartz.net.所以请不要介意新秀问题. 我已经搜索过,但是显然,我找不到一个面临同样问题的人. 我正在使用mysql进行Quartz.net Ado商店.我能够成功地运行该服务,并使用调度程序来解雇作业.但是,没有什么可以登录到数据库中.我检查了数据库是否通过使用错误的密码来拾取DB,并且调度程序服务未能启动.因此,该商店被服务选择了,但是发射的工作没有记录.我不确定为什么. 这些是我的调度程序服务的属性.
16 2024-04-26
编程技术问答社区
创建IJobExecutionContext对象
如何为测试目的创建ijobexectecution -context类实例?喜欢 IJobExecutionContext context = new ... ??? 解决方案 您可以使用掉量. https://github.com/moq/moq/moq4 var mockJobExecutionContext= new Mock(); mockJobExecutionContext.Setup( // ... do method setup here ); mockJobExecutionContext.SetupProperty(x=>x.JobInstance); var jobExecutionContext = mockJobExecutionContext.Object; 好QuickStart在这里: 其他解决方案 JobExecutionContextImpl为IjobexecutionCo
14 2024-04-26
编程技术问答社区
Windows服务中的石英工作调度器
我有这个Windows Service项目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(sch
30 2024-04-25
编程技术问答社区
asp.net的石英被iis服务器杀死了
阅读此信息: http:http://www. mikesdotnetting.com/article/254/scheduled-tasks-in-asp-net-with-quartz-net 我很高兴我可以发布一个本身可以执行安排任务的网站...或者我是我的. 我们做到了,似乎IIS服务器杀死了石英,就像其他任何计划在网站内编程的任务一样... 我对吗? 解决方案 是的,你是对的. 基本上 - 除非配置为此,否则IIS将简单地停止应用程序池.即使没有 适当的解决方案是使用外部调度程序(并可能调用特殊URL进行处理).
10 2024-04-25
编程技术问答社区
在AWS中托管的.NET Core 2网络应用中的预定工作
我们将在.NET Core 2中启动一个新项目,我将需要某种方法来运行可以完成一些工作的计划作业.该应用将托管在Linux服务器或AWS Linux实例中.我已经使用Azure webjobs和.net 4.6完成了此操作. .NET Core和Linux 如何完成此操作 解决方案 我不知道是谁投票了这个问题.我出去使用hangfire工作.很容易工作.实际上不是计划的工作.但是我们可以从运行()开始,然后在做其他事情.无需等待它结束. 如果有人需要细节. PLZ评论 其他解决方案 根据您的用例,可能会实现IHostedService接口(自.NET CORE 2.1以来可用,并且复制式Paste也可以使用.NET Core 2.0使用)就足够了.如果您只想在后台进行一些定期清理,则可以使用计时器运行它.请参阅:实现IHostedService的优点是您可以对服务的关闭做出反应.
26 2024-04-25
编程技术问答社区
Quartz.net减少记录/删除特定消息Serilog
我的.NET Core 3 Quartz.net的实现正在记录以下消息,大约每分钟两次,我想将其删除,而不会影响我的应用程序其他日志: " 0触发器的批次获取" 2020-06-22 17:42:24.745 +01:00 - [MyApplication] - [Debug] - [Quartz.Core.QuartzSchedulerThread] Batch acquisition of 0 triggers 2020-06-22 17:42:53.689 +01:00 - [MyApplication] - [Debug] - [Quartz.Core.QuartzSchedulerThread] Batch acquisition of 0 triggers 其中[MyApplication]由Source属性填充,[Quartz.Core.QuartzSchedulerThread]来自SourceContext. Quartz.net会自动记录此信息,
14 2024-04-25
编程技术问答社区
Quartz.net并不总是工作
我正在使用Quartz.net库的简单调度程序. 我有7个不同的触发器.序列就是这样. 首先:每120分钟一次. 第二个:每12小时一次. 第三:每5分钟. 第四:每3分钟一次. 第五:每29秒一次. 第六:每10秒一次. 第七:每5秒一次. 您看到的有点复杂.我有这样的问题.首先需要每两个小时工作一次.但是经过几次运行,它就停止了.它根本不起作用.其他人正在工作,还可以. 对我的英语不好,我很抱歉. private int bultengetir = 120; // min private int baslayanmacsil = 29; //sec private int kuponsonuclandir = 5;//5 min private int canliorangetir = 10; //sec private int canlimacgetir = 7; //sec private int ca
6 2024-04-25
编程技术问答社区
在依赖注入中使用带有 quartz 的方法会占用内存
我使用Quartz调用使用EF Core的方法.如果我每秒通过webapi调用该特定方法,那么没有问题,但是如果我每秒通过Quartz调用该方法,则我的内存(HEAP)在几秒钟内就会爆炸. 请注意,这只是一个简化我最初问题的演示项目. 这是我的Program.cs中的依赖性注入配置: builder.Services .AddSingleton() .AddTransient() .AddTransient() .AddTransient() .AddTransient() .AddTransient
8 2024-04-24
编程技术问答社区
JobDetail记录能否被重复使用,如何使用?
有什么方法可以在数据库中的JobDetail记录上创建新的触发器,但在内存中不在?特定用途:我计划使用Cron触发器每天运行的作业.有时,特定的一天的工作需要通过相同的参数重新运行.我想使用相同的JobDetail创建一个新的简单触发器,因为这是存储参数的地方. Reschedule()无效,因为它删除了现有的触发器.这可能吗? 解决方案 是的,您可以. 我要做的是从数据库中获取作业: var myJob = Scheduler.GetJobDetail(jobName, groupName); 并使用该功能(可能已经使用过的功能) Scheduler.ScheduleJob(JobDetail jobDetail, Trigger trigger); 传递新扳机. 您不必做太多的事情,因为运行时会在几秒钟后从数据库中获取新的扳机并将运行. 更新 有两种用Quartz.net添加触发器的方法 1)您可以添加作业,然后触发: Sch
6 2024-04-24
编程技术问答社区
c# .NET MVC 4-我如何创建使用Ninject服务的Quartz作业?
我正在使用.NET MVC 4.使用NInject注入所有服务.我正在尝试使用石英安排工作.目前,作业在Global.asax中注册如下: Global.asax: protected void Application_Start() { // ... configuration stuff ScheduledJobs.RegisterJobs(); } ScheduleJobs.cs具有ScheduledJobs类,它可以用触发器创建作业并将其添加到标准时间表中. in ScheduleJobs.cs: public class ScheduledJobs { public static void RegisterJobs() { IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler(); scheduler.Start(); IJob
8 2024-04-23
编程技术问答社区
在Application_End中检测网站登录网址
我在web.config 中有此条目 我在global.asax.cs中具有以下代码,将自动启动II void Application_End(object sender, EventArgs e) { try { string pingUrl = ConfigurationManager.AppSettings["pingUrl"]; WebClient http = new WebClient(); string Result = http.DownloadString(pingUrl); } catch (Exception ex)
6 2024-04-23
编程技术问答社区
如何在Quartz .net中把工作标记为耐用?
如何将我的IJob标记为耐用?我在Quartz .NET文档中找不到任何对此的参考,也没有使用任何XML作业配置.是否应该有某种属性,例如PersistJobDataAfterExecution,DisallowConcurrentExecution或IJob接口中的布尔属性? 解决方案 var job = JobBuilder.Create() .WithIdentity(typeof(TestJob).Name) **.StoreDurably(true)** .Build();
6 2024-04-23
编程技术问答社区
当触发发生在未来时,GetNextFireTimeUtc()返回空。
我试图删除所有已过期的触发器,因为Quartz.net面对永远不会被触发的触发器崩溃.因此,我想知道触发器的下一个火时间,如果没有任何触发时间,那么它们将过期并应删除. 但是现在我看到,即将将来的触发器也返回了下一个火时间null: string expression = "0 26 13 17 10 ? 2015"; DateTimeOffset? nextFireTimeUtc = TriggerBuilder.Create().WithCronSchedule(expression).Build().GetNextFireTimeUtc(); 可以看出,我的cron表达是2015年.但是nextFireTimeUtc返回null. 解决方案 我自己遇到了这个. per 因此,请确保您在执行" getNextfirementimutc()'. 之前,请致电ScheduleJob(...).
14 2024-04-23
编程技术问答社区
Azure-multiple worker roles-Couldn't store job: 无法存储工作:'job6',因为已经有一个这样的标识存在。
我正在使用Quartz.net调度程序来安排我的工作.我正在使用adojobstore存储所有这些值. 无法存储工作:无法存储工作:'job6',因为此标识已经存在 当我尝试运行它时,扔出上述错误.有什么想法吗? ILog log = LogManager.GetLogger(typeof(CronTrigger)); log.Info("------- Initializing -------------------"); // First we must get a reference to a scheduler ISchedulerFactory sf = new StdSchedulerFactory(); IScheduler sched = sf.GetScheduler(); log.Info("------- Initialization Complete
10 2024-04-23
编程技术问答社区
Quartz.Net 多种日历
使用Quartz.net,并且需要相同的触发器具有多个日历,而这不可能,我正在寻找有关如何实现类似功能的建议. 例如,我想在X分钟内跑步,每天上午9-10次竞选工作,但可以根据需要阻止其他时间. 下面的代码正常工作,但是如果我想阻止其他时间间隔,我看不到一种方法. ISchedulerFactory schedFact = new StdSchedulerFactory(); sched = schedFact.GetScheduler(); CronCalendar cronCal = new CronCalendar("* * 9 ? * * *"); sched.AddCalendar("testCal", cronCal, true, true); CronTrigger trigger = new CronTrigger("cronTrigger", null, "0 0/1 * 1/1 * ? *"); trigger.St
20 2024-04-23
编程技术问答社区
从 Quartz.NET 2 迁移到 Quartz.NET 3 铸造错误
我的问题是关于从Quartz.net 2到3的升级,其中现在包括等待/异步方法.我遵循了迁移文档中的所有说明,但是我在以下initializaiton(标记行)上遇到问题: public partial class BMOSSService : ServiceBase { private EventLogger _eventLogger = new EventLogger("BMOSS"); private static ISchedulerFactory _scheduleFactory = new StdSchedulerFactory(); ****private static IScheduler _scheduler = _scheduleFactory.GetScheduler();**** private static readonly ILog _log = LogManager.GetLogger("BlackBox.BMOSS
12 2024-04-22
编程技术问答社区
在所有Quartz.NET IInterruptableJob上触发中断
我正在与石英调度程序合作,并试图关闭应用程序关闭时的所有作业.我有一项专业工作,可以做一个"持有"或"忙碌的等待",基本上直到它得到耐心等待的状况. . 由于一个新的集成点,这项工作是新的.该应用程序是使用Topshelf作为服务运行的,每当我们尝试关闭服务以升级它时,现在该作业正在运行,我们必须最终重新启动服务器才能关闭. 无论如何,这里很奇怪,我有一个JobType,当我尝试使用作业FireInstanceId或JobKey触发以下代码中的中断时: _logger.InfoFormat("{0} scheduler interrupting listener", scheduler.SchedulerName); scheduler.Interrupt(ListenerKeys.Realtime); _logger.InfoFormat("{0} scheduler shutting down", scheduler.SchedulerName); schedu
30 2024-04-22
编程技术问答社区
在Quartz.net中每次执行后,JobData没有被持久化
我有一份工作,我想跟踪50次最新跑步.由于某种原因,似乎并未将状态存储在我的简单原型中: [PersistJobDataAfterExecution] public class ApiJob : IJob { private const string JobRunsKey = "jobRuns"; private const int HistoryToKeep = 50; private const string UrlKey = "Url"; public void Execute(IJobExecutionContext context) { var jobDataMap = context.JobDetail.JobDataMap; var url = context.JobDetail.JobDataMap.GetString(UrlKey); var client = new Re
6 2024-04-22
编程技术问答社区
在任务完成完全执行后调用函数
我们正在使用Quartz.net在Windows服务中按计划触发作业. 我有一个情况,我必须从Start DateTime到End DateTime End DateTime. 工作完成后,我们需要计算Next Start DateTime和Next End DateTime并保存到DB - 为此,我尝试覆盖具有一种方法的JobListener:JobWasExecuted public class xPTJobListener : JobListenerSupport { public override string Name { get { return "xPTJobListener"; } } public override void JobWasExecuted(IJobExecutionContext context, JobExecutionException jobException) { var dataM
10 2024-04-21
编程技术问答社区