我需要在我们的网站上提供行动/活动的安排.垃圾比喻可以是日历系统,其中一个人添加日历项目,并且当日期/时间被"命中"时,则触发一些逻辑(例如,计算报告).
我可能会有数百甚至数千个由我的客户输入的预定活动.当客户输入要安排的内容时,我会将该信息保存到数据库中.然后我猜我会在某处添加一个事件/作业,它将包含数据库表主键.当事件被触发时,我将从数据库中获取该信息,然后执行逻辑.完成.
有哪些常见解决方案可以解决这个问题?
我正在使用.NET 3.5 SP1.DB是Sql Server 2008.但UI将基于Web.
我不确定人们是否使用MSMQ?或者内置在Sql Server中的东西?或者一些带有NT服务的开源库(例如Quartz.NET).服务器将是windows 2008标准版.
另外 - 请不要使用等效的cron作业或任何命令行脚本等建议.
最后,这是次要的目标..我喜欢把它扔到天蓝色的地方为shiz和giggles ......所以也可能吗?这只是一个愿望清单的想法.如果解决方案比使用Azure更容易,我宁愿在专用盒子上进行.
欢呼:)
编辑:需要触发事件时要处理的逻辑,是后台作业.无需UI.
Java中有没有办法从Cron Expression中找到"Last Fired Time".
例如,如果现在= 2010年4月25日晚上10点,cron表达"0 15 10?**"(石英)应该会回复我25-Apr-2010 10:15 am
注意:1)我不关心我们是否使用标准cron表达式(如Unix和Quartz)或不那么受欢迎的表达式,如果他们可以获取正确的"最后发射时间"2)它也不是字面上的"最后一次发射时间"作为触发器可能没有触发,但逻辑上应该有一种方法可以告诉它(最终会)触发的时间.
我正在尝试找到用石英实现超时的最佳方法,但我想知道这个框架是否已经包含一个类或接口来执行它.需要实现它的超时是因为我想知道工作了多长时间,并采取了关闭工作的决定.
我正在使用带有Grails 1.3.7的石英插件.我需要加载平衡/群集使用石英作业的服务器应用程序.显然这是支持但我发现所有谷歌搜索结果和文档中的链接都被破坏了.我发现了一些原始的Java示例,但我认为Grails有更粗略的方法来做到这一点.我需要的只是一个用作模板的简单示例.我知道我需要以某种方式启用quartz来使用JDBC来存储作业和管理锁定.
我认为链接到单个样本会做到这一点.但实际上,每当我发现一些看起来很有前景的东西时,它就会指向兵马俑网站上的断开链接.几乎每个网站最终都会引导我到这里:http://www.opensymphony.com/quartz/wikidocs/TutorialLesson9.html但是当我看到兵马俑的网站时,我看到Java的东西,但没有grails.如果Java是唯一的方法,那么就这样吧,但我觉得必须有一些grails专业知识在那里的某个地方!
TIA.
我有以下情况:
计划运行的8个任务org.quartz.threadPool.threadCount设置为5.
但实际上我可以看到所有8个任务都在运行.
这怎么可能?
如果我设置org.quartz.threadPool.threadCount=5并且我提交了10个石英任务,那么只有5个任务并行运行?
org.quartz.threadPool.threadCount财产是什么意思?
我有这样的设计:
org.quartz.threadPool.threadCount设置为5的SchedulerFactoryBean进行配置.谢谢.
我不太确定这是更多的Openbravo问题还是更多的Quartz问题,但我们有一些手动流程通过Openbravo ProcessRequest对象(OB v2.50MP24)按计划运行,但似乎进程运行了两次,在同一时间.Openbravo扩展了Quartz平台以进行调度.我试图通过确保我的流程类扩展此类来自行解决此问题:
import java.util.List;
import org.openbravo.dal.service.OBDal;
import org.openbravo.model.ad.ui.ProcessRequest;
import org.openbravo.scheduling.ProcessBundle;
import org.openbravo.service.db.DalBaseProcess;
public abstract class RBDDalProcess extends DalBaseProcess {
@Override
protected void doExecute(ProcessBundle bundle) throws Exception {
org.quartz.Scheduler sched = org.openbravo.scheduling.OBScheduler
.getInstance().getScheduler();
int runCount = 0;
synchronized (sched) {
List<org.quartz.JobExecutionContext> currentlyExecutingJobs = (List<org.quartz.JobExecutionContext>) sched
.getCurrentlyExecutingJobs();
for (org.quartz.JobExecutionContext jec : currentlyExecutingJobs) {
ProcessRequest processRequest = OBDal.getInstance().get(
ProcessRequest.class, jec.getJobDetail().getName());
if (processRequest == null)
continue;
String processClass = processRequest.getProcess()
.getJavaClassName();
if (bundle.getProcessClass().getCanonicalName()
.equals(processClass)) {
runCount++;
}
}
}
if (runCount > …Run Code Online (Sandbox Code Playgroud) 我试图得到Spring和Quartz的基本示例.以下是我关注的教程:http://www.mkyong.com/spring/spring-quartz-scheduler-example/
我已经完全按照我的意思复制了所有内容,但是在输出窗口中没有看到任何内容.
弹簧quartz.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="runMeTask" class="com.ksc.jobs.RunMeTask" />
<!-- Spring Quartz -->
<bean name="runMeJob" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="com.ksc.jobs.RunMeJob" />
<property name="jobDataAsMap">
<map>
<entry key="runMeTask" value-ref="runMeTask" />
</map>
</property>
</bean>
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="runMeJob" />
<property name="repeatInterval" value="5000" />
<property name="startDelay" value="1000" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="jobDetails">
<list>
<ref bean="runMeJob" />
</list>
</property>
<property name="triggers">
<list>
<ref bean="simpleTrigger" />
</list>
</property>
</bean>
</beans>
Run Code Online (Sandbox Code Playgroud)
applicationContext.xml中
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans …Run Code Online (Sandbox Code Playgroud) 如何禁用Quartz日志记录?Quartz在我的控制台上打印INFO语句.我试图在log4j.properties文件中使用以下语句禁用它
log4j.logger.org.quartz=ALL, CONSOLE
Run Code Online (Sandbox Code Playgroud) 我收到这个错误:
org.quartz.JobPersistenceException: Couldn't store job: Driver's Blob representation is of an unsupported type: oracle.sql.BLOB [See nested exception: java.sql.SQLException: Driver's Blob representation is of an unsupported type: oracle.sql.BLOB]
at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1103)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$3.execute(JobStoreSupport.java:1042)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$40.execute(JobStoreSupport.java:3670)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3742)
at org.quartz.impl.jdbcjobstore.JobStoreTX.executeInLock(JobStoreTX.java:90)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInLock(JobStoreSupport.java:3666)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJobAndTrigger(JobStoreSupport.java:1030)
at org.quartz.core.QuartzScheduler.scheduleJob(QuartzScheduler.java:743)
at org.quartz.impl.StdScheduler.scheduleJob(StdScheduler.java:243)
at com.akbank.bsa.core.ApplicationStartup.run(ApplicationStartup.java:66)
at com.akbank.bsa.core.ApplicationStartup.initialize(ApplicationStartup.java:24)
at com.akbank.bsa.listener.Startup.contextInitialized(Startup.java:17)
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3392)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850)
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.sql.SQLException: Driver's Blob representation is of an unsupported type: oracle.sql.BLOB
at …Run Code Online (Sandbox Code Playgroud) JobDetail.requestsRecovery属性文档说明如下
如果遇到"恢复"或"故障转移"情况,则指示调度程序是否应重新执行作业.
现在,什么是"复苏"情况或"故障转移"情况?
他们有什么不同?
仅当JVM在作业执行期间崩溃时才会发生恢复,或者如果由于异常而导致作业执行失败,是否会发生恢复?
quartz-scheduler ×10
java ×7
scheduling ×2
.net ×1
crontrigger ×1
grails ×1
java-ee ×1
jdbc ×1
openbravo ×1
spring ×1
spring-mvc ×1