当前位置: 首页 > 知识库问答 >
问题:

如何优雅地处理数以千计的石英失火?

国兴贤
2023-03-14

按需重新处理大量数据。

在这两种情况下,大约有10,000个石英工作岗位产生并运行。在nightly中,我们有一个quartzcron作业,该作业产生10,000个作业,每个作业单独处理数据。

我们的问题是,我们正在运行大约30个线程,所以quartz作业自然会失效,并继续失效,直到所有的事情都处理完毕。加工过程可能需要6个小时。这10,000个作业中的每一个都涉及一个特定的域对象,可以并行处理并且完全独立。10,000个工作中的每一个都需要不同的时间(从半秒到一分钟)。

关于或体系结构的说明:我们正在运行两个集群,每个集群有三个节点。quartz的版本有点旧(2.0.1),集群是在quartz.properties文件中启用的。

共有1个答案

潘青青
2023-03-14

在这两种情况下,产生了大约10,000个石英工作岗位

不需要产生新的石英工作。Quartz是一个调度程序,而不是任务管理器。

在每晚的重新处理中,您只需要一个quartzcron作业就可以调用负责管理和运行10,000个任务的服务。在“按需”场景中,根本不应该涉及石英。只需直接调用该服务即可。

Callable<String> task = new Echo(input); // Echo is just some Callable
HazelcastInstance hz = Hazelcast.newHazelcastInstance();
IExecutorService executorService = hz.getExecutorService("default");
Future<String> future = executorService.submitToMember(task, member);
String echoResult = future.get();
 类似资料:
  • 现在我正在考虑一种方法,每个用户将为每个推迟的作业创建一个专用的,如下所示: 我可以在这里看到一个潜在的问题,即使用这种方法,我可以在Quartz Scheduler中快速创建数千个工作。以前我从来没有在Spring Scheduling中用Quartz调度过这么多的工作,不知道系统会如何处理。以这种方式实施系统是一个好主意吗?Spring Scheduling Quartz会不会处理这么多的工作

  • 让我们假设我们有这样一个用python编写的琐碎守护进程: 我们使用< code>start-stop-daemon对其进行守护,默认情况下,它会在< code> - stop上发送< code > SIGTERM (< code > TERM )信号。 假设当前执行的步骤是。此时我们正在发送信号。 发生的情况是执行立即终止。 我发现我可以使用<code>signal.signal(signal.

  • 问题内容: 假设我们有一个用python编写的琐碎守护程序: 我们将它守护起来,默认使用它发送信号–。 假设当前执行的步骤是。此时此刻,我们正在发送TERM信号。 发生的情况是执行立即终止。 我发现我可以使用处理信号事件,但事实是它仍然会中断当前执行并将控制权传递给。 因此,我的问题是-是否可以不中断当前执行,而是TERM在单独的线程(?)中处理信号,以便能够进行设置,从而有机会优雅地停止运行?

  • 让我们假设我们有这样一个用java编写的普通守护进程: 我们使用 来守护它,默认情况下,它会在 上发送 (TERM) 信号 假设当前执行的步骤是#2,此时我们正在发送项信号。 发生的情况是执行立即终止。 我发现我可以使用<code>addShutdownHook()</code>处理信号事件,但问题是它仍然会中断当前的执行,并将控制传递给处理程序: 所以,我的问题是——有没有可能不中断当前的执行,

  • 我最近在我的Spring4/Hibernate Web应用程序中实现了Spring Security来处理登录/退出和不同的用户角色。 经过大量阅读,它现在似乎工作得很好,但我注意到,由于错误的Spring Security配置而引发的异常没有使用我的自定义处理程序进行优雅的处理,而是显示为一个丑陋的Tomcat错误页面(显示HTTP状态500-UserDetailsService是必需的,后跟一

  • 问题内容: 我正在处理一个将文件附加到电子邮件的PHP表单,并试图妥善处理上传的文件太大的情况。 我了解到,其中有两个设置会影响文件上传的最大大小:和。 如果文件的大小超过,PHP会将文件的大小返回为0。我可以检查一下。 但是,如果超出了范围,我的脚本将以静默方式失败并返回空白表格。 有什么办法可以捕捉到此错误? 问题答案: 从文档中: 如果发布数据的大小大于post_max_size,则 $ _