使用cron每45分钟轮询一次

使用cron每45分钟轮询一次,cron,mule,mule-component,mule-cluster,Cron,Mule,Mule Component,Mule Cluster,我需要在部署后立即轮询,即0秒,然后使用cron每隔45分钟轮询一次 应该按如下方式进行投票::00:00、00:45、1:30、2:15、3:00等等我不知道如何在Mule中投票,但我可以帮助您完成cron时间表 Cron不支持每45分钟一次。您必须将其分为三个工作: CRON表达式每45分钟轮询一次,这将解决您的第一个问题 0 0/45*1/1** 据我所知,部署后立即运行一次无法使用“轮询”进行处理。作为一种解决方法,除了上面的Poll组件外,还可以使用“QUARTZ Inbound

我需要在部署后立即轮询,即0秒,然后使用cron每隔45分钟轮询一次


应该按如下方式进行投票::00:00、00:45、1:30、2:15、3:00等等

我不知道如何在Mule中投票,但我可以帮助您完成cron时间表

Cron不支持每45分钟一次。您必须将其分为三个工作:

  • CRON表达式每45分钟轮询一次,这将解决您的第一个问题

    0 0/45*1/1**

  • 据我所知,部署后立即运行一次无法使用“轮询”进行处理。作为一种解决方法,除了上面的Poll组件外,还可以使用“QUARTZ Inbound Endpoint”创建另一个流,并且它有一个repeatCount属性,您可以将其设置为“零”(这将只运行一次,不会重复自身)


  • 为什么必须使用cron?

    在这种情况下,最好不要使用cron,而是使用Mule的内置:

    注意默认延迟是“0”,这意味着它将在部署后立即运行,然后在部署后每45分钟运行一次

    以下是配置xml:

    ...
    <flow name="polling-frequency-example-flow"
        processingStrategy="synchronous">
        <poll doc:name="poll-every-forty-five-mins">
            <fixed-frequency-scheduler frequency="45" timeUnit="MINUTES"/>
        </poll>
        <!-- Do Something -->
    </flow>
    ...
    
    。。。
    ...
    
    Cron表达式(每45分钟一次):0 0/45*1/1**

    如果您想每45分钟(00:15,01:00,像这样)运行一次,请使用石英。
    如果您使用了轮询操作,它不会每45分钟运行一次,当项目或流部署时,它将每45分钟运行一次。

    只需使用@Mooz所述的固定频率调度程序构造,然后获取当前时间,检查是否为星期日,如果是,则不进行处理。cron表达式实际上并不直接用于处理立即运行的所有约束、相对于开始时间的频率(而不是时钟计划)以及甚至使用Mule对cron的扩展的一天计划。其他解决方案是使用两个控制器,但这对我来说似乎更干净。

    不使用Cron作业,只需使用固定频率调度器即可。 按如下方式设置该值:

    频率:45 启动延迟为:0

    时间单位为:分钟

    每10秒运行一次

    0/10 * * * * ?
    
    每45分钟跑一次

    * 0/45 * * * ?
    

    你能给我提供解决方案吗00:00、00:45、1:30、2:15、3:00等等要求回答的评论是没有用的;您已通过发布问题来寻求答案。“立即部署后”是什么意思?您想在任意时间开始还是在午夜开始?部署应用程序后。开始轮询一次,然后在45分钟后开始。以后我不需要在周日运行轮询。在这种情况下,我无法实现与固定频率调度。有没有办法通过使用固定频率调度器来进行限制。如果可能的话,你能提供吗。。若并没有,你们可以用cron表达式提供解决方案。你们并没有提到它不应该在星期天运行。但没关系,您可以添加一个Groovy组件来检查是否是星期天,如果是星期天就停止处理。这是一个常规的cron(crontab),而Mule使用石英cron调度。石英确实允许45分钟的间隔。