首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同环境下Cron作业时间的XML转换配置

不同环境下Cron作业时间的XML转换配置
EN

Stack Overflow用户
提问于 2019-07-04 00:45:05
回答 1查看 139关注 0票数 1

我正在尝试执行我已有的cron job xml的转换。但是转换不起作用。我试过所有的排列,但有些地方不对劲..

下面是我的xml

代码语言:javascript
复制
    <?xml version="1.0" encoding="UTF-8"?>

<job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         version="2.0">

  <processing-directives>
    <overwrite-existing-data>true</overwrite-existing-data>
  </processing-directives>

  <schedule>
    <job>
      <name>Suspend User Job</name>
      <group>DailyJob</group>
      <description>This job will Suspend/Terminate User</description>
      <job-type>SuspendTerminateUserJob</job-type>
      <durable>true</durable>
      <recover>false</recover>
    </job>

    <trigger>
      <cron>
        <name>suspendTerminateUserTrigger</name>
        <group>indexTriggerGroup</group>
        <job-name>Suspend User Job</job-name>
        <job-group>DailyJob</job-group>
        <misfire-instruction>DoNothing</misfire-instruction>
        <cron-expression>0 55 3 ? * * *</cron-expression>
      </cron>
    </trigger>
  </schedule>
</job-scheduling-data>

正在尝试将CRON表达式转换为新的时间...使用以下转换(请注意时间表/作业...可以有许多分组,因此必须按触发器的名称进行搜索):

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<job-scheduling-data xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <schedule>
    <trigger>
      <cron>
        <add cron-expression="0 15 3 ? * * *" 
          xdt:Transform="Replace"
          xdt:Locator="XPath(job-scheduling-data/schedule/trigger/cron[name='suspendTerminateUserTrigger'])" />
      </cron>
    </trigger>
  </schedule>
</job-scheduling-data>

在我看来这个xpath是正确的..但是它不会转换xml。我试着用https://webconfigtransformationtester.apphb.com/网站

EN

回答 1

Stack Overflow用户

发布于 2019-07-04 03:46:37

因此,原始xml文件的名称空间是问题所在。通过从原始xml中删除名称空间解决了这个问题。并将斜杠添加到转换文件中xpath的开头。

代码语言:javascript
复制
xdt:Locator="XPath(/job-scheduling-data/schedule/trigger/cron[name='suspendTerminateUserTrigger'])" />

这也可以通过将名称空间引用添加到转换文件,然后在xpath中引用具有名称空间的每个元素来完成。但这似乎是一种更复杂的方法。如下所示:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<job-scheduling-data xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" xmlns:quartz="http://quartznet.sourceforge.net/JobSchedulingData">
  <schedule>
    <trigger>
      <cron>
        <add cron-expression="0 15 3 ? * * *" 
          xdt:Transform="Replace"

          xdt:Locator="XPath(/quartz:job-scheduling-data/quartz:schedule/quartz:trigger/quartz:cron[quartz:name='suspendTerminateUserTrigger'])"
         />
      </cron>
    </trigger>
  </schedule>
</job-scheduling-data>

编辑:最后,我不得不使用第二种方法来正确地实现转换。对于任何正在阅读这篇文章的人,请使用这句话作为答案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56874738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档