在我的应用程序中,需要能够为我的sql数据库自动备份创建预定作业
我可以使用Spring Quartz Scheduling来创建这个Jobs吗?
任何帮助都会有用。
Amulraj.P
答案 0 :(得分: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获取3.0。