标签: quartz-scheduler

每日石英作业的Cron触发器

像往常一样,我在为Quartz作业设置Cron计时器表达式时遇到了麻烦.如果我想每天2245时开始工作,那么表达式应该是:

0 45 22**?

cron quartz-scheduler

1
推荐指数
1
解决办法
1万
查看次数

无法运行石英调度程序

我正在关注这个例子,http://www.quartz-scheduler.org/documentation/quartz-2.1.x/quick-start

在该示例的一部分中,它提到"如果您尚未设置日志记录,则所有日志都将发送到控制台,您的输出将看起来像这样"

我尝试了这个例子,但是我无法在控制台中看到输出.

我唯一的信息是

log4j:WARN No appenders could be found for logger (org.quartz.impl.StdSchedulerFactory).
log4j:WARN Please initialize the log4j system properly.
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

java logging log4j quartz-scheduler

1
推荐指数
1
解决办法
3746
查看次数

未捕获的异常对Quartz的SimpleThreadPool中的线程的影响

使用Spring的集成API Quartz,对具有未捕获异常的cron作业有什么影响?由于cronbean/worker线程没有捕获异常,这是否意味着该线程已经死亡并且无法返回到SimpleThreadPool?如果它死了并且没有返回池将意味着SimpleThreadPool将需要创建新线程,如果这样多次发生,从而清空池?

这是堆栈跟踪的示例:

org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:276) - Invocation of method 'doCronJob' on target class [abc.package.ServiceImpl] failed
java.io.FileNotFoundException: http://www.website.com
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1457)
    at abc.package.ServiceImpl.doCronJob(ServiceImpl.java:453)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:283)
    at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:272)
    at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:208)
    **at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)**
Run Code Online (Sandbox Code Playgroud)

java spring quartz-scheduler worker-thread threadpool

1
推荐指数
1
解决办法
2875
查看次数

石英和rabbitMQ,这有什么区别?

Quartz和RabbitMQ,这些技术有什么区别?它们可以一起使用吗?这些技术可以安装在托管Web服务器的硬件上,还是最好为它们安装专用硬件?

quartz-scheduler rabbitmq

1
推荐指数
1
解决办法
2195
查看次数

如何使JobDetailBean非并发运行?

我正在使用Quartz Scheduler运行一些计划的作业。我的应用程序中的所有作业都是JobDetailBean作业。

我知道使用MethodInvokingJobDetailFactoryBean,我们可以使作业像这样并发:

<property name="concurrent"><value>false</value></property>
Run Code Online (Sandbox Code Playgroud)

我想知道如何使JobDetailBean作业非并行。默认情况下,JobDetailBean作业并发运行。

要求是:jobA需要每5分钟运行一次,但前提是前一个实例已经完成。

谢谢,

什卡

spring quartz-scheduler

1
推荐指数
1
解决办法
2572
查看次数

How to set cronExpression programatically using javacode for Quartz Scheduler with Spring?

BackGround :

I am using Quartz scheduler with Spring to schedule a cronjob.

Question:

我正在我的applicationconfig文件中配置调度程序选项.相反,我想在我的java类中以编程方式指定这些选项.关于如何实现这一点的任何想法?我的代码如下,

ApplicationConfig



<!-- Cron Trigger -->
<bean id="SimpleTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
  <property name="jobDetail" ref="TaskJobDetail" />
  <property name="cronExpression" value="0 19 14 * * ?" />  
</bean>

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
 <property name="jobDetails">
    <list>
    <ref bean="TaskJobDetail" />
    </list>
</property>  
<property name="triggers">
    <list>
    <ref bean="SimpleTrigger" />
    </list>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)

我想在我的java类中以编程方式设置cronExpression.有什么想法吗?

spring quartz-scheduler

1
推荐指数
1
解决办法
3417
查看次数

如何为长时间运行的作业停止Windows服务?

目前我正在使用Windows服务继续在后台运行一些作业.这些工作是通过Quartz.Net安排的.通常这些是长期工作,跨度从5分钟到15分钟.如果作业当前正在运行,并且用户将尝试关闭Windows服务,则会抛出异常:Windows服务未及时响应.

实际上是WindowsService的OnShutdown()方法,我也试图关闭Quartz.Net.我正在调用scheduler.Shutdown(true)来停止调度程序并等待运行作业.如果我将此设置为False,则Windows Service会正常停止,但它会使正在运行的Job处于Unstable状态.请帮帮我.

c# quartz-scheduler

1
推荐指数
1
解决办法
985
查看次数

Quartz cron表达式从现在开始每14分钟运行一次

我想现在每14分钟就找一份工作.

例如,如果我在上午11:04安排工作,使用0 0/14 * * * ?cron表达式.然后预计火灾时间为11:18,11:32,11:46,依此类推.但它将在11:00,11:14:11,28:11:42,11:56,12:00开火,这是不可预期的.为什么它在11:56之后的中午12点开火,差距只有4分钟.

  • 如何使用cron表达式实现我想要的?
  • 谁能解释一下石英cron的这种行为?

提前致谢.

java cron quartz-scheduler

1
推荐指数
1
解决办法
1万
查看次数

Windows服务结束后,Quartz.net的工作似乎仍然存在

我是Quartz.net的新手,现在感觉很好.我正在设置Quartz.net作业以从我的Windows服务运行.

我的Windows服务有两种启动模式:a)如果项目作为Windows服务运行,它将作为普通服务运行.b)如果项目是从Visual Studio中以调试模式运行的,它将以交互模式运行(这样我就可以根据上下文将调试信息输出到控制台与记录器).它在Main()中执行如下操作(只是摘录):

if (Environment.UserInteractive && System.Diagnostics.Debugger.IsAttached) {
    System.Reflection.MethodInfo onStartMethod = typeof(ServiceBase).GetMethod("OnStart", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
    onStartMethod.Invoke(myService, new object[] { new string[] { } });
    Console.WriteLine("Service started.");
    Console.WriteLine("Press a key to stop service and finish process...");
    Console.ReadKey();
    System.Reflection.MethodInfo onStopMethod = typeof(ServiceBase).GetMethod("OnStop", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
    onStopMethod.Invoke(myService, null);
    Console.WriteLine("Service stopped.");
} else {
    ServiceBase.Run(myService);
}
Run Code Online (Sandbox Code Playgroud)

现在在MyService中我有以下工作,这个工作似乎按预期正确运行:

protected override void OnStart(string[] args)
{
    _schedulerFactory = new StdSchedulerFactory();
    IScheduler scheduler = _schedulerFactory.GetScheduler();
    scheduler.Start();

    IJobDetail syncJob = JobBuilder.Create<MySyncJob>()
            .WithIdentity("syncJob")
            .Build();

    ITrigger trigger = TriggerBuilder.Create()
        .StartAt(new DateTimeOffset(DateTime.UtcNow.AddSeconds(5))) …
Run Code Online (Sandbox Code Playgroud)

.net c# windows-services quartz-scheduler quartz.net

1
推荐指数
1
解决办法
1145
查看次数

如何正确配置Spring Boot项目以与Quartz和MySQL一起使用?

我所做的是:

  1. 使用Web,JPA,MySQL和Quartz作为依赖项创建了一个Spring Boot(v2.1.8)Gradle项目。
  2. 然后在application.properties文件中添加了以下属性
spring.application.name=QuartzTestWithMySQL
server.port=8081

## Data source
#docker run -d --rm -p 3306:3306 --name=mysql-docker -e MYSQL_ROOT_PASSWORD=root -e MYSQL_USER=test -e MYSQL_PASSWORD=test -e MYSQL_DATABASE=testDB mysql:latest
spring.datasource.name = myDS
spring.datasource.url=jdbc:mysql://localhost:3306/testDB
spring.datasource.username=test
spring.datasource.password=test

## Hibernate Properties
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto = create-drop

## QuartzProperties
#spring.quartz.job-store-type=memory
spring.quartz.job-store-type=jdbc
spring.quartz.properties.org.quartz.threadPool.threadCount=5
#spring.quartz.jdbc.initialize-schema=always

#spring.quartz.properties.org.quartz.scheduler.instanceName = MyScheduler
#spring.quartz.properties.org.quartz.threadPool.threadCount = 3
#spring.quartz.properties.org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore

spring.quartz.properties.org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX …
Run Code Online (Sandbox Code Playgroud)

quartz-scheduler spring-boot

1
推荐指数
1
解决办法
204
查看次数