首页 文章

spring 石英调度

提问于
浏览
0

在我的应用程序中,需要能够为我的sql数据库自动备份创建计划作业

我可以使用Spring Quartz Scheduling来创建这个Jobs吗?

任何帮助都会有用 .

Amulraj.P

1 回答

  • 1

    是的,你可以,虽然看起来有点矫枉过正 . 可以使用命令行工具来备份MSSQL数据库,如果您在Windows上使用Unix或计划任务,则可以使用cron轻松安排运行 .

    %PATH_TO_SQL_SERVER%\Tools\Binn\osql.exe
    -E -Q "BACKUP DATABASE mydb TO DISK='%PATH_TO_BKP%\db.bak' WITH FORMAT"
    

    对你提问,答案是这样的:(来自here的无耻自我复制)

    该作业引用您的业务对象,该业务对象具有负责备份的方法:

    <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
      <property name="targetObject" ref="exampleBusinessObject" />
      <property name="targetMethod" value="backupDB" />
      <property name="concurrent" value="false" />
    </bean>
    

    负责触发方法的触发器:

    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
      <property name="jobDetail" ref="exampleJob" />
      <!-- run every morning at 6 AM, use regular cron expressions-->
      <property name="cronExpression" value="0 0 6 * * ?" />
    </bean>
    

    schedulerFactoryBean用于连接触发器:

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

    请参阅Spring documentation中的2.5,here for 3.0 .

相关问题