草庐IT

Quartz2D

全部标签

java - 如何将 Quartz 与 QuartzInitializerListener 一起使用?

我无法理解如何将Quartz与QuartzInitializerListener一起使用。首先,我在部署描述符中声明了该监听器。但是,如何添加我的工作?看看QuartzInitializerListenerimplementation,我看到它创建了SchedulerFactory和Scheduler,但我看不到任何添加作业的方法。工厂收到configurationfile,但同样与那里的工作无关。我只从我的搜索中找到了非常简单的示例,都是关于在main方法中实例化所有内容。谁能给我指出一个更真实的例子?如果重要的话,我正在使用JBoss5。谢谢。 最佳答案

java - Quartz Scheduler - RAM 和 JDBC 作业存储之间的区别是什么

我想在我的应用程序中使用QuartzScheduler框架。我遇到了两种类型的JobStores:1)RAM作业库2)JDBC作业存储。我想知道在什么情况下我必须使用哪个工作商店。它们之间的优缺点是什么。关于此的任何想法对我都非常有帮助,我很感激。 最佳答案 JDBC作业存储在数据库中保存有关触发的触发器和作业的信息,因此:如果在触发器应该触发时应用程序关闭,它不会丢失触发(这取决于选择的misfire指令)你可以集群你的调度器,其中每个节点使用相同的数据库JDBC作业存储速度相当慢RAM作业存储仅适用于非集群应用程序,在该应用程序

java - 将 Java2D 保存到 SWF (flash)

我正在尝试将Java2D中绘制的vector图像的输出保存到SWF文件中。有很多很棒的库可以将java2D输出保存为SVG(BATIK)和PDF(itext)之类的东西,但我找不到一个用于SWF的库。有什么想法吗? 最佳答案 我刚得到一个使用SpriteGraphics2D的例子来自Adobe'sFlex3的对象.仅供引用...Flex3现在是开源的。(fromSpriteGraphics2Djavadoc)SpriteGraphics2DisaSWFspecificimplementationofJava2D'sGraphics2

java - 使用 Graphics2D 使用亚像素级精度绘制图像

我目前正在尝试像在视频游戏中一样以固定速率在屏幕上绘制图像。不幸的是,由于图像移动的速度,一些帧是相同的,因为图像还没有移动一个完整的像素。有没有办法向Graphics2D提供float值而不是int值来绘制图像?最初这是我所做的:BufferedImagesrcImage=sprite.getImage();PositionimagePosition=...;//Definedelsewhereg.drawImage(srcImage,(int)imagePosition.getX(),(int)imagePosition.getY());这当然是阈值,所以图片不会在像素之间移动,而

java - Hazelcast 预定作业(支持 Quartz?)

我知道这对terracotta家伙不公平,但是有没有人尝试使用Hazelcast以便在集群环境中使用预定作业?我能想到的最简单的实现是以下架构:用于确保只有一台服务器启动Quartz配置的全局Hazelcast锁。将实际任务作为DistributedTask运行。(这可以稍后完成,目前繁重的计划任务需要负责触发DistributedTask)持有锁的服务器一旦关闭,另一台服务器就会获得锁。我相信这对于已经拥有Hazelcast的人来说是一个很大的优势,因为他们不需要一直打开terracotta东西来处理整个开发环境的麻烦。目前我编写了最简单的解决方案,即只让一个节点负责执行Quartz

java - Graphics2D 转换结果与手动转换不匹配

我正在使用Java的Graphics2D在使用AffineTransform的组件上绘制来操纵我的绘图。Graphics2D为此提供了一种方法转换,它采用AffineTransform。有时我需要在不使用内置转换的情况下手动操作一个点。但是,当我尝试使用我给Graphics2D.transform的相同变换来变换一个点时,有时结果点是不一样的。下面的代码重现了这个问题(它是Scala代码,但我想你可以想象Java代码。):vartransformationMatrix=newAffineTransform()/**transformationMatrixismodifiedthroug

java - Tomcat 被杀死时 Quartz 当前正在执行的作业

有一点不太清楚。假设我全天随机安排工作,每项工作需要30分钟才能运行。假设我有五个这样的工作在运行,而Tomcat被杀死了。当我用我的应用程序启动Tomcat时作业会重新启动,还是当前正在运行的作业会丢失,因为它们已经被触发? 最佳答案 简答,默认情况下,当前正在运行的Jobs被认为已解雇并且不会恢复..但是您可以在构建作业(JobDetail)时设置requestRecovery属性,以告诉Quartz在崩溃的情况下恢复正在运行的作业,也就是“硬关机”.引用官方文档here在页面底部:RequestsRecovery-ifajob

通过实例详细讲解Quartz.NET的一些高级功能的应用,你用到了多少

Quartz.NET是一个强大的开源作业调度库,提供了许多高级功能。以下是Quartz.NET的常用高级功能:Cron表达式触发器: 使用Cron表达式定义灵活的调度规则,实现复杂的时间调度策略。作业依赖性: 允许定义作业之间的依赖关系,确保它们按照特定的顺序执行。作业执行中的数据传递: 在调度作业时,可以传递参数和数据,使得作业能够根据需要获取执行时的上下文信息。全局作业监听器: 添加全局监听器,监听作业的执行生命周期事件,例如作业执行前、执行后等。全局触发器监听器: 添加全局监听器,监听触发器的生命周期事件,例如触发器触发、触发器完成等。自定义日历: 可以实现自定义的日历逻辑,例如排除特定

java - JobListener 的 jobExecutionVetoed 何时会在 Quartz Scheduler 中执行?

JobListener的jobExecutionVetoed什么时候会在QuartzScheduler中执行??jobExecutionVetoed方法有什么用?? 最佳答案 假设我们有一个工作J和触发器T。我们在TriggerListenervetoJobExecution()中有一个方法。该方法在触发器刚被触发时执行。所以,有了这个我们就可以控制是执行还是取消与触发器关联的作业。如果我们想解雇这个工作,那么我们应该从这个方法返回true。一旦我们从该方法返回,joblistener中的“jobExecutionVetoed()”

java - 使用 Quartz 只运行一次作业

有没有一种方法可以让我在Java中使用Quartz只运行一次作业?我知道在这种情况下使用Quartz没有意义。但是,问题是,我有多项工作,而且它们运行了多次。所以,我正在使用Quartz。这可能吗? 最佳答案 您应该使用在特定时间触发且不重复的SimpleTrigger。TriggerUtils有许多方便的方法来创建这类东西。 关于java-使用Quartz只运行一次作业,我们在StackOverflow上找到一个类似的问题: https://stackove