标签: quartz-scheduler

使用LINQ查询/子查询多个方法(Quartz.NET示例用于组,作业和触发器)

绝对是一个LINQ新手,但对SQL和C#非常有经验,并想知道这在LINQ中是否可行.如果是这样,我可以在其他地方使用它,但我认为这将是一个很好的起点(并有助于简化/清理一些代码).这可能更通用,但我认为这可能是一个很好的现实生活中的例子,可以帮助解释.

快速背景:我正在做一个个人学习项目,构建一个调度程序,学习Spring.NET/DI,Fluent NHibernate,Quartz.NET,并尝试用TDD来完成我的专长.到目前为止已经学到了一吨.

Quartz.NET IScheduler对象具有这些属性(1)/方法(2)(假设为公共)...

string[] JobGroupNames { get; }
string[] GetJobNames(string groupName)
Trigger[] GetTriggersOfJob(string jobName, string groupName)
Run Code Online (Sandbox Code Playgroud)

假设触发器定义只是......

class Trigger
{  
    string Name { get; }
}  
Run Code Online (Sandbox Code Playgroud)

我有一个类我正在尝试获取一个列表,其中包含如下构造函数(因为它一旦创建就不可变)...

class QuartzJob
{
    public QuartzJob(Guid groupId, Guid jobId, IEnumerable<string> triggerNames)
}
Run Code Online (Sandbox Code Playgroud)

目前这就是我处理它的方式......

public IEnumerable<QuartzJob> GetQuartzInfo(IScheduler scheduler)
{
    List<QuartzJob> list = new List<QuartzJob>();

    foreach (string grp in scheduler.JobGroupNames)
    {
        foreach (string job in scheduler.GetJobNames(grp))
        {
            var triggerNames = scheduler
                .GetTriggersOfJob(job, grp)
                .ToList()
                .ConvertAll(t => t.Name);

            var qj = new QuartzJob(new Guid(grp), new …
Run Code Online (Sandbox Code Playgroud)

c# linq subquery quartz-scheduler quartz.net

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

Quartz不断将其日志记录在我的所有日​​志文件中

我有个问题.Quartz不断将其日志记录在我的所有日​​志文件中.我可以将Quart的日志重定向到单独的文件吗?这是我的logback.xml:

<configuration debug="false">
  <appender name="hcmut.cse.virtuallab.request" class="ch.qos.logback.core.FileAppender">
    <file>log/hcmut.cse.virtuallab.request.log</file>
    <encoder>
      <pattern>%date %level [%thread] %logger [%file:%line] %msg%n</pattern>
    </encoder>
  </appender>
  <appender name="hcmut.cse.virtuallab.timer" class="ch.qos.logback.core.FileAppender">
    <file>log/hcmut.cse.virtuallab.timer.log</file>
    <encoder>
      <pattern>%date %level [%thread] %logger [%file:%line] %msg%n</pattern>
    </encoder>
  </appender>
  <logger name="root" level="debug">
    <appender-ref ref="hcmut.cse.virtuallab.timer" />
    <appender-ref ref="hcmut.cse.virtuallab.request" />
  </logger>
</configuration>
Run Code Online (Sandbox Code Playgroud)

logging quartz-scheduler

2
推荐指数
2
解决办法
6862
查看次数

Quartz调度程序和OSGI

我有一个OSGI调度程序包,其中包含Quartz Scheduler Jar.此捆绑包仅向其他捆绑包公开应用程序接口,并在注册新作业时将其包装到temporaryJob(实现StatefulJob)并使用调度程序进行调度.

通过这种方式,我不必公开Quartz Scheduler jar(它不是那么多的osgi兼容).这种方法的问题在于,由于StatefulJob避免并行执行作业而我只有一个实际作业(temporaryJob),所以我的所有实际作业一次运行一个.

不幸的是,标记界面似乎是唯一可以说该作业是有​​状态的方式.我能找到的唯一解决方案是让守护进程公开StatefulJobInterface(删除假工作),但这样做,我遇到了很多类路径问题.有一个更简单的解决方案吗?

osgi quartz-scheduler

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

Spring应用程序:在Quartz作业中获取服务器路径

我正在使用JBoss 4和Spring.在Web应用程序中,我使用Quartz调度程序来执行某些计划任务.在Quartz作业中,我想获得服务器路径是否可能?如果有,怎么样?

PS:某些上下文我需要Quartz作业中的服务器路径,因为该作业会发送电子邮件.电子邮件包含我的应用程序所服务的网站的链接,为了构建正确的URL,我需要一个服务器路径.硬编码服务器路径是禁忌,因为应用程序部署在各种服务器上.

java spring quartz-scheduler

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

使用Quartz获取数据库连接

我有一个要求,我需要在我的调度过程中插入数据并检索相同的内容.尽管我可以创建自己的连接类并且可以完成工作,但我想知道是否有办法使用Quartz API获取数据库连接.

由于Quartz有效地进行数据库连接和处理,所以我的目的是使用一个定义良好的结构而不是创建自己的结构.

我在Quartz中看到了以下代码

conn = DBConnectionManager.getInstance().getConnection(
                    getDataSource());
Run Code Online (Sandbox Code Playgroud)

但我不确定这种方法有多好以获得连接.或者有任何好的示例/资源来创建一个有效的数据库连接类.

Quartz属性文件

org.quartz.scheduler.instanceName=QuartzScheduler
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.threadPool.threadCount=7
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.MSSQLDelegate
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.dataSource = myDS
org.quartz.dataSource.myDS.driver=com.mysql.jdbc.Driver
org.quartz.dataSource.myDS.URL=jdbc:mysql://localhost:3306/quartz
org.quartz.dataSource.myDS.user=root
org.quartz.dataSource.myDS.password=root
org.quartz.dataSource.myDS.maxConnections=5
Run Code Online (Sandbox Code Playgroud)

java jsp jdbc quartz-scheduler

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

Quartz cron表达式为0/0

作为输入验证的一部分,我在考虑这是否是一个真正有效的cron表达式以及它将如何执行:

0 0/0 * * * ?
Run Code Online (Sandbox Code Playgroud)

Quartz验证返回true

org.quartz.CronExpression.isValidExpression("0 0/0 * * * ?")
Run Code Online (Sandbox Code Playgroud)

那么,这一直在运行,从不,每小时或每一分钟......?

java quartz-scheduler cronexpression

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

使用jdbcStore Grails Quartz Plugin错误

我尝试使用Grails的最新石英插件:quartz:1.0.1.

如果我离开jdbcStore = false,它会工作,如果我设置为true则失败.QuartzConfig.groovy:

    quartz {
       autoStartup = true
       jdbcStore = true
       waitForJobsToCompleteOnShutdown = true
       exposeSchedulerInRepository = false

    props {
        scheduler.skipUpdateCheck = true
     }
    }
Run Code Online (Sandbox Code Playgroud)

这是属性文件:

    org.quartz.scheduler.instanceName reporting_test
    org.quartz.scheduler.instanceId AUTO

    org.quartz.threadPool.class org.quartz.simpl.SimpleThreadPool
    org.quartz.threadPool.threadCount 5
    org.quartz.threadPool.threadPriority 5

    org.quartz.jobStore.misfireThreshold 60000

    org.quartz.jobStore.class org.quartz.impl.jdbcjobstore.JobStoreTX
    org.quartz.jobStore.driverDelegateClass org.quartz.impl.jdbcjobstore.StdJDBCDelegate

    org.quartz.jobStore.useProperties false
    org.quartz.jobStore.tablePrefix QRTZ_
    org.quartz.jobStore.isClustered true
    org.quartz.jobStore.clusterCheckinInterval 5000

    org.quartz.plugin.shutdownhook.class org.quartz.plugins.management.ShutdownHookPlugin
    org.quartz.plugin.shutdownhook.cleanShutdown true
Run Code Online (Sandbox Code Playgroud)

我一直试图尝试数据源设置,因为我更喜欢使用我在Datasource.groovy中设置的默认DS.无论数据源的设置如何,我仍然会在启动时收到以下错误消息.

        2013-12-18 13:43:14,693 [localhost-startStop-1] ERROR context.GrailsContextLoader  - Error initializing the application: org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock: Line 1: FOR UPDATE clause allowed only for DECLARE …
Run Code Online (Sandbox Code Playgroud)

grails quartz-scheduler grails-plugin

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

quartz scheduler2.2.x创建sqlserver数据库架构?

我是Quartz的新手.我已经用RAM jobstore做了一些示例.之后我试图为JDBC jobstore做一些事情.我有SQL服务器作为我的数据库.

在我的quartz.properties中,

org.quartz.scheduler.skipUpdateCheck: true  

org.quartz.scheduler.instanceName =OZS_SCHEDULAR  
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool  
org.quartz.threadPool.threadCount = 4  
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true  
org.quartz.threadPool.threadPriority = 5  


#specify the jobstore used  
org.quartz.jobStore.misfireThreshold = 60000  
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX  
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate  
org.quartz.jobStore.useProperties = false  


#The datasource for the jobstore that is to be used  
org.quartz.jobStore.dataSource = myDS  

#quartz table prefixes in the database  
org.quartz.jobStore.tablePrefix = WB_QRTZ_  
org.quartz.jobStore.misfireThreshold = 60000  
org.quartz.jobStore.isClustered = false  

#The details of the datasource specified previously  
org.quartz.dataSource.myDS.driver =net.sourceforge.jtds.jdbc.Driver  
org.quartz.dataSource.myDS.URL =jdbc:jtds:sqlserver://192.160.100.24:1433;databaseName=Test  
org.quartz.dataSource.myDS.user =admin  
org.quartz.dataSource.myDS.password = password …
Run Code Online (Sandbox Code Playgroud)

java database sql-server scheduler quartz-scheduler

2
推荐指数
2
解决办法
9627
查看次数

Grails 3 Quartz插件:作业无法启动

我想在Grails做一个简单的后台工作.我只是希望每30秒左右发生一次.

我使用的是Grails 3.1.3

我已经将Quartz添加到我的依赖项中:编译"org.grails.plugins:quartz:2.0.1"

然后我运行编译并重新启动grails CLI.现在我通过create-job创建了一个Job.它看起来像这样:

package htwp

class UserSyncJob {
    static triggers = {
      simple repeatInterval: 5000l // execute job once in 5 seconds
    }

    def execute() {
        println ("?")
        log.error("??!")
        throw new Error("JOB WHERE ARE YOU");
    }
}
Run Code Online (Sandbox Code Playgroud)

当我通过run-app启动服务器时没有任何反应.没有打印,也没有错误.我究竟做错了什么?

grails quartz-scheduler grails-plugin grails-3.1

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

每次使用时都会出现Quartz.NET错误

我在这行中得到一个错误说:

无法将类型'System.Threading.Tasks.Task'隐式转换为'Quartz.IScheduler'.存在显式转换(您是否错过了演员?)

如何解决; 我不明白?请帮忙!

IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();

   public static void Start()
    {
        try
        {
            //Construct scheduler factory
            //IScheduler scheduler = schedulerFactory.GetScheduler();

           // IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();

            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
            scheduler.Start();

            IJobDetail job = JobBuilder.Create<HelloJob>()
                .WithIdentity("jobName", "jobGroup")
                .Build();

            ITrigger trigger = TriggerBuilder.Create()
                .WithSimpleSchedule(s => s.WithIntervalInSeconds(60).RepeatForever())
                .StartNow()
                .Build();

            scheduler.ScheduleJob(job, trigger);

           // scheduler.Start();

        }

        catch (SchedulerException se)
        {
            //Console.WriteLine(se);
        }
    }
}

public class HelloJob : IJob
{
    private TBPESContext db = new TBPESContext();
    public void Execute(IJobExecutionContext context)
    {
        var AuthorName …
Run Code Online (Sandbox Code Playgroud)

triggers scheduler quartz-scheduler quartz.net quartz

2
推荐指数
3
解决办法
4343
查看次数