问题标签 [quartz.net]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 用于失败作业的 Quartz.NET JobListener
在我的基于 Quartz.NET 的应用程序中,我有一个 JobListener 来审计所有执行到审计表的作业。但是,我还希望监听器能够检测到任何类型的错误发生,所以我可以捕捉到这个并通过电子邮件发送一个有错误的电子邮件地址,并可能找到特定的错误(即我的程序移动文件,所以错误可能是一条路径不存在)。
我如何侦听失败的作业,是否有可能检测是否存在大量错误,在这种情况下只发送几封电子邮件而不是为每个错误发送一封电子邮件?
c# - Quartz.NET - 编辑/删除作业页面
我正在将 Quartz.NET 用于我正在创建的 C# Windows 服务。我希望管理员能够访问在网格视图中显示所有作业和相关触发器的网页,以便他们可以更新或删除作业。
我遇到的问题是我想要显示/可编辑的大量数据存储在JOB_DATA
字段中,这是一个二进制图像字段,因此无法使用 gridview 轻松访问。如何获取JobDetail
每一行的信息,并获取网格的数据映射?
.net - 如何使 Quartz.NET 进程同步?
我有一个预定的工作,每 5 分钟重复一次。它工作正常。
但是我有一种情况,我的第一份工作没有在 5 分钟内完成,而第二份工作正在开始(原定 5 分钟)。
我不想那样做,一次只能做一份工作。我怎样才能做到这一点?
这是我的代码:
scheduled-tasks - 如何在我的 Job 上使用属性而不是 Quartz.NET 中的 JobDataMap 字典?
我正在开发一项 Windows 服务,该服务需要在调用其中一个 Web 服务时安排任务。在最坏的情况下,这可能每秒发生数百次。任务需要等待一段时间,一般是一两分钟,然后调用传递参数的方法。
我们尝试构建自己的调度程序类来做到这一点:
但我们认为这不合适,因为理论上我们最终可能会有数百个线程池线程都在等待。我的印象是可用的线程池线程数量有限,这可能会锁定系统。
然后我转向 Quartz.NET 并在他们的功能页面上阅读:
作业类实例可以由 Quartz.NET 或应用程序的框架实例化。
在他们教程的第 3 页上,调度程序创建了您的作业类(不是您)的实例,因此:
在作业类上定义数据成员是没有意义的,因为每次作业执行时它们的值都会被“清除”。
随意对我大喊大叫,但是我如何在 Job 类实例执行之前获得对它的引用,以便我可以在其上设置属性?
- 该属性正在执行参数的工作,因此在作业执行后我对它不感兴趣。
- 我还想尽量减少实现这一目标所需的对象数量,以保持我的代码简洁明了。
- 最后,我非常不喜欢使用字典,因此更愿意避免使用 JobDataMap 对象。
scheduling - Quartz.net:避免庞大的数据库,停止未来的触发器,转储计划任务
有几个问题要问真正的石英大师!
我是 Quartz.net 初学者,希望在我被烧毁之前得到一些建议:
1)我安排了一堆工作/触发器在未来的特定时间开始。完成这些任务后,我不再使用数据库中的作业/触发器信息。我需要做些什么来避免 Quartz 事件的大量数据库堆积,还是它们会照顾好自己并自动被删除?
2)我的各种任务周期性地重复。但有时,当我运行实际作业时,我意识到我不想再继续运行定期事件,直到作业到期。如何从正在执行的作业中停止所有未来的触发器?
3)有没有办法转储所有计划任务。有时像“scheduler.DumpAll() ;-)”?
提前致谢!
c# - Quartz.NET 中的自动作业命名
使用 Quartz.NET 似乎我需要命名我创建的每个作业。有没有办法可以自动“命名”,比如自动递增 ID 或其他什么?
c# - 从另一种方法(Quartz.NET)获取调度程序。或一般方法问题
这可能是关于共享变量的一般问题,但这里有。
我在网页上使用 GridView 来编辑每个作业,并且我需要连接到每个“行绑定”事件以从 jobDataMap 获取一些数据。
无论如何,调度程序从 Page_Load 方法开始(创建我可以用来访问信息的变量 sched),但是从任何其他事件/方法我无法访问 sched 变量。我如何允许自己这样做?
谢谢
c# - 将 Quartz.NET 用于项目中的多个页面/应用程序
我正在创建一个使用 Quartz.NET(带有 ADO.NET DB 存储)的项目。有核心组件,即执行作业的组件(目前的控制台应用程序,将是 Windows 服务),以及多个 Web 表单,用户可以在其中添加作业和编辑作业(编辑数据映射值以使其具体化)。
我在从所有页面访问调度程序时遇到了一些问题——核心组件和“添加作业”页面运行良好,完全没有问题。但在他们中,我基本上都在这样做:
当我在编辑页面中执行相同操作时,它会通知我已经有一个名为 this 的调度程序。
我知道我可能正在做一些非常愚蠢的事情,但是有什么方法可以在我的所有页面中声明调度程序以便我可以访问它们?
c# - 我在 C# 和 Quartz.NET 中创建的 Windows 服务的提示和技巧
我目前正在进行一个项目,该项目是创建一个 Windows 服务,该服务实质上是围绕多个路径移动文件。一项工作可能是每 60 秒从 FTP 服务器获取与正则表达式匹配的所有文件并将它们传输到网络路径,等等。这些作业存储在 SQL 数据库中。
目前,该服务采用控制台应用程序的形式,以方便开发。作业是使用 ASP.NET 页面添加的,并且可以使用另一个 ASP.NET 页面进行编辑。
我有一些问题,一些与 Quartz.NET 和一些一般问题有关。
石英网:
1:这是我最大的问题。看到我暂时将应用程序开发为控制台应用程序,我不得不在我的所有文件/页面上创建一个新的 Quartz.NET 调度程序。这会导致多个令人困惑的错误,但我只是不知道如何在一个全局文件中启动调度程序,并在我的 ASP.NET 页面中访问这些(例如,我可以将详细信息放入网格视图进行编辑)
2:我的经理建议我可以考虑在 Quartz.NET 中拥有多个“配置”。我的意思是,在任何给定时间,管理员都可以更改应用程序配置,以便仅运行特定选择的应用程序。在 Quartz.NET 中最简单的方法是什么?
一般的:
1:在此应用程序中至关重要的一件事是确保文件已被移动并且它实际上在目标路径上(移动后原始文件被删除,因此如果文件没有被删除,那将是灾难性的实际上被复制了!)。我还需要确保文件内容与初始路径和目标路径匹配,以确保复制的内容是正确的。我目前正在通过 MD5 散列初始文件、复制文件并在删除它之前确保该文件存在于服务器上来执行此操作。然后我在服务器上散列文件并确保散列匹配。有没有更简单的方法来做到这一点?我担心散列可能会给系统带来压力。
2:这与上述问题有关,但并不重要,甚至我的经理也不知道我将如何做到这一点,但我很想实现这一点。如果在写入文件时执行作业会出现问题,这可能是一半写入的文件将被传输,从而使其完全无用,并且由于初始文件会被破坏而这也会很糟糕它正在被写入!有没有办法检查这个?
c# - 在 Quartz.NET 中获取触发器属性
我需要能够在 C# 中获取触发器的属性(即 cron 表达式或简单触发器的类型(每日、每小时等)及其参数),并显示它们并让它们进行修改。我现在有这个:
但我找不到任何方法让我访问这些信息。有任何想法吗?