问题标签 [quartz-scheduler]

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.

0 投票
4 回答
5211 浏览

java - 使用 Quartz 工作线程拆分 log4j 输出

我正在开发一个应用程序,该应用程序由一个基于 Quartz 的整体调度程序和使用 CronTriggers 运行的“CycledJob”组成。该应用程序的目的是根据来源国家/地区处理来自不同电子邮件收件箱的输入。

根据它来自的国家(即美国、英国、法国等),应用程序会触发一个工作线程来运行每个国家的处理周期,因此会有一个英国工作线程,一个用于美国、法国等。将输出格式化为 log4j 时,我使用线程参数,因此它会发出 [ApplicationName_Worker-1]、[ApplicationName_Worker-2] 等。尽我所能,我找不到命名线程的方法,因为它们'重新从 Quartz 的线程池中退出。尽管我可能会扩展 Quartz,但我想制定一个不同的解决方案,而不是弄乱标准库。

问题出在:使用 log4j 时,我希望将所有日志项从美国线程输出到仅限美国的文件,对于每个国家线程也是如此。我不在乎他们是否留在一个统一的 ConsoleAppender 中,FileAppender 拆分就是我在这里所追求的。我已经知道如何指定多个文件附加程序等,我的问题是我无法根据国家/地区进行区分。应用程序中有 20 多个类可以在执行链上,其中很少有我想通过每个方法传递额外的“上下文”参数的知识来负担......我已经考虑过扩展一个策略模式log4j 包装类,但除非我可以让链中的每个类都知道它在哪个线程上来参数化记录器调用,否则这似乎是不可能的。

所以这里有一个问题:什么是建议的方法来允许应用程序中的许多从属类,每个从属类都用于每个不同的线程来处理输入,知道它们在记录时它们在特定国家线程的上下文中?

祝你好运,请提出澄清问题!我希望有人能够帮助我找到一个体面的方法来解决这个问题。欢迎所有建议。

0 投票
2 回答
3229 浏览

java - 在 JBoss 4.2.x 上升级到 Quartz 1.6

有没有推荐的方法来升级 JBoss 4.2.x 中的 Quartz?

JBoss 捆绑了quartz 1.5.2,但我遇到了我想避免的问题( QUARTZ-399QUARTZ-520 )。

我不想仅仅为了解决错误而在 JBoss 中修补quartz.jar,而是提供一个新的quartz.jar(加上相关的配置工件)。Quartz 1.6 迁移说明仅包含特定于 Quartz的信息,在搜索过程中我找不到任何其他信息。

将新的quartz.jar 放到EAR 文件中似乎不起作用,因为旧版本是在服务器级别加载的(在服务器的lib 目录中)。

我很确定有人已经尝试过了,并希望此人可以分享或提供一些链接。

0 投票
8 回答
12613 浏览

java - 非托管线程 Spring Quartz Websphere Hibernate

看来我们使用 Quartz - JDBCJobStore 以及 Spring、Hibernate 和 Websphere 的实现正在抛出非托管线程。

我做了一些阅读,发现 IBM 的一篇技术文章指出使用 Quartz 和 Spring 会导致这种情况。他们建议使用 CommnonJ 来解决这个问题。

我做了一些进一步的研究,到目前为止我看到的唯一例子都是处理不在数据库中的旧 JobStore 计划。

所以,我想知道是否有人有这个问题的解决方案的例子。

谢谢

0 投票
1 回答
764 浏览

database - 如何配置 cocoon 以将数据库用作石英作业和触发器的存储

我正在使用 Cocoon 并希望将石英调度程序的作业和触发器存储在数据库中,以便它们被持久化。我可以看到我需要在哪里进行更改,cocoon.xconf但我找不到太多关于如何配置数据源等的信息。

如何配置它以使用我们现有的(postgres)数据库?

0 投票
4 回答
7192 浏览

java - 我应该创建一个新的石英作业和触发器还是一个作业和多个触发器?

我正在寻找使用石英来安排电子邮件,但我不确定采用哪种方法:

  1. 创建新作业并在安排电子邮件时触发或
  2. 创建一个作业,并在每次安排电子邮件时创建一个新触发器

无论哪种方式,我都需要传递消息/收件人等,而且我不确定创建大量作业是否会开始增加相当大的内存开销,因为很可能会安排数千封电子邮件。

更新:这些电子邮件将由用户而不是我安排 - 所以我将在运行时以编程方式添加这些电子邮件,它们不会在任何特定时间发出。

0 投票
2 回答
3633 浏览

java - 来自 servlet 的 Java 异步处理

我目前有一个 tomcat 容器——在其上运行的 servlet 正在侦听请求。我需要将 HTTP 请求的结果提交给作业队列,然后将其异步处理。我希望每个“作业”在数据库中连续保存,以便在发生故障时进行跟踪和恢复。我一直在做很多阅读。这是我的选择(注意我必须使用开源的东西)。

1)JMS——使用ActiveMQ(但在这种情况下,谁是工作的消费者另一个servlet?)

2)让我的请求在数据库中创建一行。在我的 Tomcat 容器中有一个单独的 servlet,它始终运行——它使用 Quartz 调度程序或 java.util.concurrent 中提供的实用程序将行作为作业连续处理(使用线程池)。

我倾向于后者,因为查看 JMS 文档让我很头疼,虽然我知道它是一个更强大的解决方案,但我需要相对快速地实现它。在任何情况下,我都没有预料到在部署此服务器的早期会有大量负载。

很多人说 Spring 可能适用于 1 或 2。但是我从未使用过 Spring,我什至不知道如何开始使用它来解决这个问题。任何关于如何深入研究而不必重新编写我的整个项目的指示都会很有用。

否则,如果您可以权衡选项 1 或 2,那也很有用。

澄清:异步过程是屏幕抓取第三方网站,并向原始请求者发送消息通知。第三方网站有点不稳定和缓慢,这就是为什么它将作为异步过程处理(内置多次重试尝试)。我还将从该站点提取文件并将它们存储在 S3 中。

0 投票
3 回答
6708 浏览

java - Quartz 的库冲突

有一个奇怪的情况。我将 Glassfish 服务器用于我的企业应用程序。在那个应用程序中,我使用 JSF、Richfaces、Quartz、Jasper Reports 和 Commons Email。当我构建应用程序并将其部署到我的开发人员时。计算机、开发和测试服务器,一切正常。但是当我使用相同的 glassfish 将应用程序部署到生产服务器时,我无法运行 Quartz 调度程序。它让我知道公共集合存在一些问题。我知道某处有冲突,但我找不到在哪里。你能给我一些指示在哪里看。顺便说一句,我使用的是 NetBeans 6.5。

这是日志:

0 投票
7 回答
20715 浏览

java - 使用 Quartz 和 Spring

在我的应用程序中,需要能够根据传入的请求类型(动态)创建计划作业。

我仍然可以使用 Spring 来创建和触发 Jobs 吗?如果是,如何?

任何帮助都会很有用。

0 投票
6 回答
36613 浏览

java - Quartz Scheduler突然停止运行并且没有异常错误

我有一些石英工作,每天晚上 7 点运行。突然跑不起来了。我检查了我的 server.log 并且没有抛出异常。任何人都知道可能是什么问题?

提前致谢

0 投票
2 回答
2707 浏览

c# - Quartz.net + NHibernate + Windsor.Castle + CommonServiceLocator

我有一个基于Sharp-architecture框架的Web 应用程序。它实际上使用 NHibernate 作为 dal,并且我在 (VIEW-CONTROLLER) 和 DAL 之间添加了一个服务层。

我实际上需要实现一个调度程序来频繁地运行我的工作。我将使用Quartz.net来完成这项任务。其实我面临一个问题。因为我会有很多工作以不同的时间表运行,比如每 30 秒、每天、每周。

我想知道是否有办法在 Quartz 中使用服务注入来运行NHibernate,以及它是否支持作业并发,我的意思是如果两个作业同时运行,NHibernate 是否不会出现问题。我知道 NHibernate 和multithreading存在一些问题。

我找到了一个 Quartz.Net for Spring 的实现(http://www.zorched.net/2009/03/07/using-quartznet-springnet-and-nhibernate-to-run-scheduled-tasks-in-aspnet/)以及 Castle-Windsor 的实现(http://bugsquash.blogspot.com/2009/03/windsor-facility-for-quartznet.html)。

问题是,我认为这个例子没有考虑到作业可以同时运行的情况,这是一个 Nhibernate 问题。而且我想使用更高级别的CommonServiceLocator ,而不是将自己限制在一个IoC框架中。

解决这个问题的最佳方法是什么?

谢谢你的帮助