所参考的职位

2024-06-13

我在成功安排作业时遇到了一些麻烦,但没有出现标题中提到的错误,具体来说:The job (CRAWLS.my_repos) referenced by the trigger does not exist. [See nested exception: org.quartz.JobPersistenceException: The job (CRAWLS.my_repos) referenced by the trigger does not exist.]

看一下代码......其中,一切似乎都应该没问题。

runJob 方法...需要注意的主要事情是它在这一行中失败:m_scheduler.scheduleJob(trigger);该方法的其余部分就在那里,以防它的其余部分有用。

public void runJob(JobInfo jobInfo, 
        com.lawson.search.spi.common.Properties jobProperties)
{
    try {
        JobDataMap jobDataMap = QuartzUtils.createJobDataMapFromLesProperties(jobProperties);
        if (jobExists(jobInfo)) {
            m_scheduler.triggerJob(jobKey(jobInfo.getName(), jobInfo.getGroup()), jobDataMap);
        } else {
            JobDetail job = QuartzUtils.createJobDetailFromJobInfo(jobInfo);
            Trigger trigger = newTrigger()
                .forJob(job)
                .withIdentity(getImmediateTriggerName(jobInfo))
                .build();
            m_scheduler.scheduleJob(trigger);
        }
    } catch (SchedulerException e) {
        String msg = "runJob: " + jobInfo;
        if (s_log.isDebugEnabled()) {
            s_log.debug(msg, e);
        }
        throw new JobSchedulerException(msg, e);
    }
}

The createJobDetailFromJobInfo()方法很简单,但很重要:

static JobDetail createJobDetailFromJobInfo(JobInfo theJobInfo)
{
  JobDetail detail = newJob(QuartzJobAdapter.class)
    .withIdentity(theJobInfo.getName(), theJobInfo.getGroup())
    .storeDurably()
    .build();
  return detail;
}

我能想到的唯一其他重要方法是getImmediateTriggerName()我认为可能会导致问题的方法......但我不知道为什么。

private String getImmediateTriggerName(JobInfo jobInfo)
{
    return jobInfo.getName() + "#" + jobInfo.getGroup() + ":" + System.currentTimeMillis();
}

任何帮助,将不胜感激。


尝试安排一个工作

// Schedule the job with the trigger 
m_scheduler.scheduleJob(job, trigger);

代替

m_scheduler.scheduleJob(trigger);

From quartz-scheduler.org http://quartz-scheduler.org :

操作方法:在 2.1.x 中安排作业 http://quartz-scheduler.org/documentation/quartz-2.1.x/cookbook/ScheduleJob and 操作方法:在 2.2.x 中安排作业 http://quartz-scheduler.org/documentation/quartz-2.2.x/cookbook/ScheduleJob

两个版本的代码是相同的

// Define job instance
JobDetail job1 = newJob(ColorJob.class)
    .withIdentity("job1", "group1")
    .build();

// Define a Trigger that will fire "now", and not repeat
Trigger trigger = newTrigger()
    .withIdentity("trigger1", "group1")
    .startNow()
    .build();

// Schedule the job with the trigger 
sched.scheduleJob(job, trigger);

无论如何,只有当quartz无法检索到a时才会抛出异常JobDetail触发器存储期间触发器的作业密钥storeTrigger method

if (retrieveJob(newTrigger.getJobKey()) == null) {
    throw new JobPersistenceException("The job ("
            + newTrigger.getJobKey()
            + ") referenced by the trigger does not exist.");
}

// add to triggers array
triggers.add(tw);

....

public JobDetail retrieveJob(JobKey jobKey) {
    synchronized(lock) {
        JobWrapper jw = jobsByKey.get(jobKey);
        return (jw != null) ? (JobDetail)jw.jobDetail.clone() : null;
    }
}

所以你的错误很奇怪,因为 jobkey 是之前分配的forJob方法中的TriggerBuilder class

public TriggerBuilder<T> forJob(JobDetail jobDetail) {
    JobKey k = jobDetail.getKey();
    if(k.getName() == null)
        throw new IllegalArgumentException("The given job has not yet had a name assigned to it.");
    this.jobKey = k;
    return this;
}

尝试安排工作

m_scheduler.scheduleJob(job, trigger);

首先,按照之前的建议,如果不起作用,您应该调试代码并检查作业密钥,如果您的密钥正确,则问题可能不在您的代码中,而是石英配置不匹配。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

所参考的职位 的相关文章

  • 我的应用程序中的 google+ 集成

    我是 Android 开发新手 正在创建一个带有 Google 集成的 Android 应用程序 我看到了一个教程并开始遵循它 但自教程以来 Google 已经更新了 Google 集成 例如 在本教程中您曾经单击 获取配置文件 按钮htt
  • Java无法读取字体

    好的 我在使用自定义字体时遇到问题 基本上我得到了从互联网上下载的自定义字体并在我的程序中使用它 当我在 Eclipse 我使用的编辑器 中运行该程序时 一切正常 没有问题 但是 每当我将它从 eclipse 导出到 jar 时 或者尝试从
  • 为 HTTPS 连接设置 https.protocols 系统属性时出现问题

    我有一个 Java 实现 各种客户端应用程序使用它来连接到第三方系统 这些第三方系统支持 http https 上的不同协议 在这种情况下 所有客户端应用程序都托管在我的 Java 实现托管的同一服务器中 因此 在这种情况下 各种客户端应用
  • 从 ArrayList Java 中的 HashMap 键中检索所有值

    美好的一天 这让我现在有点困惑 大脑冻结 并且似乎遗漏了一些东西 有一个 ArrayList 我用 HashMap 填充它 现在我放入 HashMap 和 arraylist Map put DATE value1 Map put VALU
  • 限制执行第三方软件的线程的权限

    我正在开发一个基于 Eclipse 的应用程序 能够执行第三方组件 不是 eclipse plugin 每个组件都有一个列出权限 以及相应动机 的自定义描述符 这样最终用户可以决定是否执行它 组件在单独的线程中执行 如何根据描述符限制这些线
  • RSA Java 加密和 Node.js 解密不起作用

    我有一个系统 需要在 javascript 中生成 RSA 密钥对 然后将公钥存储在服务器端的数据库中 作为字符串 然后 Java 中的服务器端将使用存储的公钥对字符串进行加密密钥并将其发送到客户端 客户端将使用私钥解密该字符串 我在客户端
  • 从 java 代码运行 Python 脚本

    这是我第一次在java中尝试python 我正在尝试从我的代码执行 python 脚本 如下所示 Process process Runtime getRuntime exec python C Users username Desktop
  • HQL - 分页的行标识符

    有谁知道HQL是否有一个关键字来标识行 例如ROWID或ROWNUM 我想使用 HQL 实现分页 但我无法使用 setMaxResult 或 setFirstResult 因为我不直接使用会话对象 因此不使用 Query 对象 而只是将查询
  • 在Java中,为什么equals()和hashCode()必须一致?

    如果我重写类上的任一方法 它必须确保如果A equals B true then A hashCode B hashCode也一定是真的 有人可以给我看一个简单的例子 如果违反了这一点 就会导致问题吗 我认为这与您是否使用该类作为 Hash
  • Apache HttpClient 4.x 在上传较大文件时表现奇怪?

    我正在使用 java 和 scala 开发和测试一个简单的客户端 服务器应用程序 The server是基于com sun net httpserver HttpServer并允许使用 POST 和 PUT 操作通过基本的 RESTful
  • 我应该在远程工作站的哪里放置 CSV 配置文件以进行分布式 JMeter 测试?

    我想做JMeter分布式测试 手册上说首先我应该开始jmeter server在远程节点上 然后我应该更新jmeter config并运行jmeter在主节点上 我做了所有这些步骤 我的测试计划包括使用 CSV 配置文件 如果我只从 1 个
  • 获取 Spring Boot 中当前活动数据源的引用

    我想通过实现数据库数据初始化DataSourceInitializer 我将这些方法放在我的 Spring Boot 主方法下面 但似乎它根本没有被执行 我尝试故意删除字符只是为了触发一个错误来确认执行 什么也没有发生 Configurat
  • double 或 BigDecimal 会溢出吗?

    Java 8 给了我们Math addExact https docs oracle com javase 8 docs api java lang Math html addExact int int 适用于整数 但不适用于小数 是否有可
  • Selenium 和 xpath:查找带有类/id 的 div 并验证其中的文本

    我正在努力拥有xpath find a div并验证div有一个特定的string里面的文字 这是HTML div class Caption Model saved div and div class gwt HTML sfnStanda
  • 面临 process.start(); 的问题在 Android 棒棒糖中

    面临一个问题process start 在 Android 棒棒糖中 我在服务中遇到了 android lollipop 后台进程的问题 我的代码在 KitKat 之前工作正常 我有一个ProcessBuilder pBuilder并向其中
  • 为什么 (Oracle) JVM 对内存使用有固定上限 (-Xmx)?

    本着提问的精神Java 为什么存在 MaxPermSize https stackoverflow com questions 3356005 java why does maxpermsize exist 我想问一下为什么Oracle J
  • Java SFTP使用JSch上传,但如何覆盖当前文件?

    我正在尝试使用 JSch 通过 SFTP 将两个文件上传到服务器 如果目录为空 则上传文件效果很好 但我想一遍又一遍地上传相同的文件 只需更改内部的 id 但我不知道如何执行此操作 JSch 中有一些名为 OVERWRITE 的静态参数 但
  • Finalize() 何时执行? [复制]

    这个问题在这里已经有答案了 在一次采访中我被问到 假设 JVM 在 A 类对象未被使用时运行 gc class A some code here protected void finalize code here 它是否保证finalize
  • Java - 动态创建子类

    我想以编程方式创建一个子类 我想我的选择很少 Javassist CGLib BCEL 或 ASM 用例是一个应用程序的内部是面向类的 而扩展是基于类的 因此 我不能将单个类作为由外部化脚本驱动的多个扩展的基础 现在 我该怎么做呢 我找到了
  • Java中ThreadFactory的使用

    有人可以简要解释一下如何以及何时使用 ThreadFactory 吗 使用和不使用 ThreadFactory 的示例可能确实有助于理解差异 Thanks 这是一种可能的用法 假设您有一个ExecutorService它执行你的Runnab

随机推荐

  • GitLab 发布临时 IP 禁令 - 403 禁止

    我的 GitLab 实例设置有时会对我们自己的 IP 地址实施 IP 禁令 导致办公室中的所有用户在任何网页或 git 请求上都会收到 403 Forbidden 该禁令的实施是由于身份验证重复出现错误 这完全是一个单独的问题 但我想防止我
  • 如何将 GCC 诊断编译指示与 C++ 模板函数一起使用?

    我想使用 g 和 Werror 所以我现在必须禁用我无法控制的第三方库的警告 提供的解决方案http gcc gnu org onlinedocs gcc Diagnostic Pragmas html http gcc gnu org o
  • 错误 itms-90451“CFBundleIdentifier 冲突错误”

    我上传了我的应用程序的一个版本 弹出此错误 并且我的应用程序的 Google 地图部分没有任何更改 我第一次上传时没有任何问题 只需从您的扩展中删除嵌入框架构建阶段即可 单击目标部分中的扩展 gt 构建阶段 gt 删除嵌入 Pod 框架 见
  • 如何在hololens中为光标添加点击动作

    在microsoft Hololens中 将光标添加到按钮但无法添加光标操作 任何人都可以帮忙 提前致谢 要添加 单击 功能 您可以使用 HoloLens Toolkit 中内置的输入管理器来执行此操作 看这里 https github c
  • MVC 5 动态行与 BeginCollectionItem

    单击按钮时向表添加 删除行的最佳方法是什么 我需要从子类属性创建的行 子类是主类 模型中的列表 当前有一个视图 模型是 MyMain 它使用 RenderPartial 引用部分视图 分部视图显示模型的属性 一个名为 MyChild 的类
  • 如何使用 jQuery 设置/取消设置 cookie?

    如何使用 jQuery 设置和取消设置 cookie 例如创建一个名为test并将值设置为1 2019 年 4 月更新 Cookie 读取 操作不需要 jQuery 因此不要使用下面的原始答案 Go to https github com
  • 如何与Socket.io连接?雨燕4

    我已阅读最新文档 https github com socketio socket io client swift of Socket io对于斯威夫特 还有一个新连接的示例 let manager SocketManager socket
  • 如何在没有终端节点令牌的情况下确认 Amazon SNS 的订阅?

    在我的 JAVA 应用程序中 我使用 Amazon SNS 向客户发送电子邮件 一旦我将一位客户 电子邮件 ID 订阅到我的 SNS 主题 它要求客户确认订阅以接收电子邮件 有什么方法可以在您的应用程序本身中确认订阅 无需客户的帮助 不 这
  • 如何将代码重用添加到我的 Selenium 测试中?

    这是我正在处理的情况 在 Selenium 中构建测试 让所有测试正确运行 在 Firefox 中 将所有测试导出到MSTest 以便每个测试都可以在IE Chrome和FF中运行 如果需要修改任何测试 请在 Selenium IDE 中进
  • 如何计算 React-Native 中 MapView 组件的纬度和经度增量?

    我如何从 React Native 中的 MapView 组件的纬度和经度值计算增量纬度和增量经度值 谢谢 如果您有一个坐标数组并且想要一个适合所有这些点的区域 您可以执行以下操作 const regionContainingPoints
  • GKE:入口负载均衡器不使用配置的静态 IP

    我在 GCP 中使用 terraform 创建了一个全局静态 IP 地址 但是 当我尝试将其分配给 GKE 集群内的入口控制器时 它会被忽略 这是我的 Kubernetes 配置 apiVersion extensions v1beta1
  • 如何设置openpyxl ScatterChart的线条颜色

    我正在尝试将 openpyxl 散点图的线条设置为绿色 from openpyxl import book workbook Workbook ws book active xRef chart Reference ws min col 1
  • 设置应用程序默认的iOS本地通知样式

    从 iOS 5 开始 有两种通知样式 横幅和警报 旧 样式 用户可以在设置中为每个应用程序设置使用哪种样式 但是 现在默认情况似乎是通知以横幅样式显示 我使用本地通知来提醒 现在 将发生的事件 横幅出现后不久就会消失 而且还不够明显 人们可
  • 找不到实体框架数据提供程序,entityclient

    首先 我发现许多问题和许多答案与我的问题相关或被认为与我的问题相同 但似乎没有什么对我有用 我有一个全新的模板化 MVC4 网站 全新安装的 sql server 2008 r2 中有一个全新的数据库 我在数据库上运行 aspnet reg
  • Oracle 11g OFFSET FETCH 给出错误

    我正在进行查询并尝试从数据库中获取随机数量的行 但 Oracle 一直告诉我我的命令尚未正确结束 select from random table order by random column name offset 0 rows fetc
  • 如何验证华为X-HW-SIGNATURE?

    我如何验证X HW SIGNATURE in PHP 的文档请求参数 https developer huawei com consumer en doc development HMSCore References https uplin
  • 如何设置“attr_accessible”以便不允许使用 Ruby on Rails 访问模型的任何字段?

    如果在模型文件中我只有以下代码 class Users lt ActiveRecord Base end 这意味着什么 与模型相关的所有属性是否均可访问 我如何设置 attr accessible 以便not允许访问any领域的for那个型
  • 如何设置工具栏文本和后退箭头颜色

    工具栏背景是深色 我希望文本和后箭头是白色的 我尝试遵循 但它不起作用
  • 如何使用放心获取 Rest API 中的授权令牌?是否可以?

    目前使用 Postman 我必须向 API URL login 发送请求 并传递用户名和密码 作为回报 我得到令牌 如下所示 请求示例 login POST Body username admin password admin Return
  • 所参考的职位

    我在成功安排作业时遇到了一些麻烦 但没有出现标题中提到的错误 具体来说 The job CRAWLS my repos referenced by the trigger does not exist See nested exceptio