当前位置: 首页 > 知识库问答 >
问题:

石英spring集成调度,可以动态设置cron触发器吗

屈升
2023-03-14

首先,我的应用程序将cron的详细信息从浏览器保存到数据库中,稍后,调度应该通过获取详细信息来完成。如何在ApplicationContext中动态设置cron表达式。当我启动应用程序时,调度程序启动并运行作业,实际上我不希望这种情况发生。我希望作业在用户从浏览器获取值后运行,并基于它应该触发的数据库值

ApplicationContext.xml

<bean id="JobA" class="org.springframework.scheduling.quartz.JobDetailBean">
        <property name="jobClass" value="com.JobCSVfile" />
        <property name="jobDataAsMap">
            <map>
                <entry key="timeout" value="5" />
            </map>
        </property>
    </bean>
    <bean id="cronTriggerJobA" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail" ref="JobA" />
        <property name="cronExpression" value="0/5 * * * * ?" />
    </bean>

    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="jobDetails"> <list> <ref bean="JobA" /> </list> </property>

        <property   <list>
                <ref bean="cronTriggerJobA" />

            </list>
        </property>
    </bean>

共有1个答案

司寇正志
2023-03-14

您可以将CronSchedulerBean的属性“autostart”设置为false,这意味着Cron作业在应用程序启动后不会执行。一旦您准备好了适当的参数,就可以启用cron作业了。

请参阅此API:http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/schedulation/quartz/schedulerFactorybean.html#SetAutoStartup(布尔)

 类似资料:
  • 在使用Quartz Scheduler 1.8.6版的应用程序中,当作业未完成时,我们遇到了一个触发器卡住的问题。 例如,我们有ssh调用或数据库查询的作业。如果这些作业挂起(因为ssh调用没有终止,或者select语句有一个表锁),那么我将无法再触发这些作业。触发器被卡住,直到我强制重新启动调度程序。 我已经试过了。中断(触发器)和调度程序。重新调度触发器()。我试着移除触发器并重新创建它。我已

  • 是否可以添加/删除/修改在Quartz Spring Boot中动态安排的作业(在运行时),由使用我的门户的最终用户。由于计划无法从外部访问,我不知道有什么办法。基本上,我需要将所有的时间表信息存储到数据库中并访问它们。Im构建的门户将被大量用户使用,实现这一目标的正确解决方案是什么? 否则我可以像下面这样使用cron吗 每5 mns扫描一次作业以实现此目的。

  • 我想知道是否有一个函数/方法来创建随机时间触发的作业。我的意思是,如果我设置一个cron计划在每周一上午10:00触发,并给出一个时间间隔,比方说30分钟,触发器将总是在9:30到10:30之间关闭。例如,这是cron调度表。

  • 我有一个2节点的HA服务器。节点1处于活动状态,节点2处于备用状态。 我已经做了一个应用程序,并使用quartz api做集群。我已经把数据库里的所有桌子都做好了。 现在,我是否需要同时在节点或jst节点1中运行该模块,以便当节点1关闭时,应用程序自动在节点2中启动。 在两个节点中运行模块时,触发器和作业名应该相同还是不同? ThreadPool.ThreadCount=10 ThreadPool

  • 我想用quartz scheduler使用jdbc数据存储立即执行作业~。然而,即使我使用now()或调用triggerjob进行调度,在调度和触发器fire之间也有20-30秒的延迟。 我尝试用一个简单的触发器执行作业: 并且我还尝试用调度程序触发: 下面是显示延迟的侦听器日志。

  • 乡亲们, 我正在尝试用Quartz调度器实现Spring boot,以便在java中调度作业。我的经理建议根据作业id为所有作业使用具有不同实施服务的单个作业。但我不能说服所有服务实施都使用单个作业。 请指导我使用多个服务类的单个作业或为每个服务编写每个作业。 提前感谢。。