рдЬрд╛рд╡рд╛ (рд╕реНрдкреНрд░рд┐рдВрдЧ) рдореЗрдВ рдПрдХ рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдХрд╛рдо рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореБрдЭреЗ рдПрдХ рд░рдирд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╢реЗрдбреНрдпреВрд▓рд░реНрд╕ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд░реНрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ, рдФрд░ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣рдордиреЗ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдХрд┐ рдЯрд╛рдЗрдорд░ рджреНрд╡рд╛рд░рд╛ рдХреМрди рд╕реЗ рдХрд╛рд░реНрдп рдЪрд▓рд╛рдиреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдЧреЗ рдХрд╛ рдХрд╛рд░реНрдп рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛: рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рд╕реВрдЪреА рд╕реЗ рд╣рдЯрд╛рдиреЗ рдпрд╛ рдХреНрд░реЛрди-рдЯрд╛рдЗрдорд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрдмрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдзреАрдорд╛ рдирд╣реАрдВ рдХрд░рдирд╛ред
рдЧреБрдЧреНрд▓рд┐рдВрдЧ рдФрд░ рдкрдврд╝рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред рдЬрд┐рддрдирд╛ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдЙрд╕рд╕реЗ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛ рдЧрдпрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдкрдврд╝рдирд╛ рдкрдбрд╝рд╛ред
рдпрд╣ рд▓реЗрдЦ рд╢рд╛рдпрдж рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдорд╛рд╕реНрдЯреЛрдбрди рдЦреБрдж рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирдпрд╛ рд╕реАрдЦреЗрдВрдЧреЗред

рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рд╢рд░реНрддреЗрдВ:

рд╢реЗрдбреНрдпреВрд▓рд░ - рдирд┐рдпрдВрддреНрд░рдг рдХрд╛рд░реНрдп рд▓реЙрдиреНрдЪ рдЯрд╛рдЗрдорд░

рдиреМрдХрд░реА - рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯрд╛рдЗрдорд░-рдЯреНрд░рд┐рдЧрд░ рдХрд╛рд░реНрдп

рдПрдХ рдЯреНрд░рд┐рдЧрд░ - рдПрдХ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд░реНрдд - рд▓реЙрдиреНрдЪрд┐рдВрдЧ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЙрдирдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╕рдордп рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ

рддрджрдиреБрд╕рд╛рд░, рд╢реЗрдбреНрдпреВрд▓рд░ рдореЗрдВ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдЯреНрд░рд┐рдЧрд░ рдХрд╛ рд╡рд┐рд╡рд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИред

рд╕рд┐рд╕реНрдЯрдо рдПрдХ рд╢реЗрдбрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ (shedulers.xml) рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
<beans:bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <beans:property name="jobDetails"> <beans:list> <beans:ref bean="reportCheckServiceJob" /> <beans:ref bean="vacationApprovalAutoProcessServiceJob" /> <beans:ref bean="plannedVacationServiceJob" /> <beans:ref bean="employeeLdapServiceJob" /> <beans:ref bean="oqProjectSyncServiceJob" /> </beans:list> </beans:property> <beans:property name="triggers"> <beans:list> <beans:ref bean="reportCheckServiceCronTrigger" /> <beans:ref bean="vacationApprovalAutoProcessServiceCronTrigger" /> <beans:ref bean="plannedVacationServiceCronTrigger" /> <beans:ref bean="employeeLdapServiceCronTrigger" /> <beans:ref bean="oqProjectSyncServiceCronTrigger" /> </beans:list> </beans:property> </beans:bean> 


рдПрдХ рдиреМрдХрд░реА рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг (рдФрд░ рдПрдХ рд╕реЗрд╡рд╛ рдЬрд┐рд╕рдХреА рд╡рд┐рдзрд┐ рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рддреА рд╣реИ):
 <beans:bean id="plannedVacationService" class="com.aplana.timesheet.service.PlannedVacationService" /> <beans:bean id="plannedVacationServiceJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <beans:property name="targetObject" ref="plannedVacationService" /> <beans:property name="targetMethod" value="service" /> </beans:bean> 


рдЬрд╣рд╛рдБ targetObject рд╕рд░реНрд╡рд┐рд╕ рдХреНрд▓рд╛рд╕ (рдмреАрди) рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рддрд░реАрдХрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЯрд╛рдЗрдорд░ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред TargetMethod рдореЗрдВ, рд╡рд┐рдзрд┐ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред

рдЙрджрд╛рд╣рд░рдг рдЯреНрд░рд┐рдЧрд░:
 <beans:bean id="plannedVacationServiceCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <beans:property name="jobDetail" ref="plannedVacationServiceJob" /> <beans:property name="cronExpression" value="${scheduler.plannedvacationcheck}" /> </beans:bean> 


рдЗрд╕ рдЯреНрд░рд┐рдЧрд░ рдореЗрдВ, рд╣рдо рдЙрд╕ рдХрд╛рд░реНрдп рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рдЯреНрд░рд┐рдЧрд░ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЛрдЬрдирд╛рд╡реЗрд╢рди рд╕реЗрд╡рд╛рдЬреЛрдм, рдПрдХ рд╕реЗрдо рднреА), рд╕рд╛рде рд╣реА рд╕рд╛рде рдХреНрд░реЙрди рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рд▓реЙрдиреНрдЪ рдХреА рдореЛрдб рдФрд░ рдЖрд╡реГрддреНрддрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред

рдЕрдм рдПрдХ рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХреИрд╕реЗ рдХрд░реЗрдВред

рдЗрд╕ рд╢реЗрдбрдпреВрд▓рд░ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕ рдмреАрди рдХреЛ рдХрдВрдЯреНрд░реЛрд▓рд░ (рд╕реЗрд╡рд╛) (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╢реЗрдбреНрдпреВрд▓рд░рдлреИрдХреНрдЯрд░реА рдмреАрди рд╣реИ) рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕ рдХрд╛рд░рдЦрд╛рдиреЗ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рдЧреЗрдЯрд╕реНрдХреНрд░рд┐рдбрд░ () рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдиреМрдХрд░реА, рдЯреНрд░рд┐рдЧрд░ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рд╕реНрд╡рдпрдВ рдХрд░реЗрдВред

рдиреМрдХрд░рд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрдбреНрдпреВрд▓рд░ рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

pauseJob (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдореВрд╣) - рдиреМрдХрд░рд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдореВрд╣ рдореЗрдВ рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛рд░реНрдп рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд░реЛрдХреЗрдВред рдЗрд╕реА рдЯреНрд░рд┐рдЧрд░ рдХреЛ рд░реЛрдХрдХрд░ рд╕реНрдЯреЙрдкрд┐рдВрдЧ рд╣реЛрддреА рд╣реИ (рджреЗрдЦреЗрдВ рдкреЙрдЬрд╝рд┐рдЯреНрд░рд╛рдЗрдЧрд░)

рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдореВрд╣) - рдиреМрдХрд░рд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдореВрд╣ рдореЗрдВ рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред рд░рд┐рдХрд╡рд░реА рдЙрдЪрд┐рдд рдЯреНрд░рд┐рдЧрд░ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рд╕реЗ рд╣реЛрддреА рд╣реИ (рджреЗрдЦреЗрдВ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ)

pauseTrigger (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдореВрд╣) - рд╕рдВрдмрдВрдзрд┐рдд рд╕рдореВрд╣ рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ

рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдореВрд╣) - рдЗрд╕реА рд╕рдореВрд╣ рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ

pauseAll - sheduler рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд░реЛрдХ рджреЗрддрд╛ рд╣реИ (pauseJobs (рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдореВрд╣) - рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП)

рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ - рд╕рднреА рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ (рд░рд┐рдЬреНрдпреВрдо рднреА рджреЗрдЦреЗрдВ)

рдФрд░ рдпрд╣ рднреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рдиреАрдЪреЗ, рдХреЛрдб рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдиреМрдХрд░рд┐рдпреЛрдВ рдХреЗ рд╕рдореВрд╣ рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╢реЗрдбреНрдпреВрд▓рд░ рдореЗрдВ рд╕рднреА рдЙрдкрд▓рдмреНрдз рд╕рдореВрд╣реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреАред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрджрд┐ рдиреМрдХрд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдореВрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ DEFAULT рд╕рдореВрд╣ рдХреЛ рдЙрдиреНрд╣реЗрдВ рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдк рд╕реАрдзреЗ (@Autowired) рдЯреНрд░рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рдХреНрд░реЛрди рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рдирд┐рдпреЛрдЬрд┐рдд рдХрд╛рд░реНрдп рд╕реЗрд╡рд╛рд╕реЗрд╡рд╛ рдХреНрд░реЙрдирд┐рдХрд▓ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдХреНрд░реЛрдирдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк getTrigger (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо, рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдореВрд╣) рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдПрдХ рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреНрд░рд┐рдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

  @Autowired @Qualifier("plannedVacationServiceCronTrigger") private CronTriggerBean plannedVacationServiceCronTrigger; @Autowired private SchedulerFactoryBean schedulerFactoryBean; public someMethod(){ logger.info(plannedVacationServiceCronTrigger.getCronExpression()); plannedVacationServiceCronTrigger.setCronExpression("*/1 * * * * ?"); //schedulerFactoryBean.getScheduler().pauseJob("plannedVacationServiceJob", "DEFAULT"); schedulerFactoryBean.getScheduler().pauseTrigger("plannedVacationServiceCronTrigger", "DEFAULT"); for (String str : schedulerFactoryBean.getScheduler().getJobGroupNames()){ logger.info(str); } for (String str : schedulerFactoryBean.getScheduler().getJobNames("DEFAULT")){ logger.info(str); } logger.info(schedulerFactoryBean.getScheduler().getTrigger("plannedVacationServiceJob", "DEFAULT").getCronExpression()); } 



рдХреНрдпрд╛ рдкрдврд╝реЗрдВ:
www.seostella.com/ru/article/2012/02/12/ispolzovanie-annotacii-autowired-v-spring-3.html
static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/scheduling.html
quartz-scheduler.org/api/2.1.0/org/quartz/Scheduler.html
ru.wikipedia.org/wiki/Cron

Source: https://habr.com/ru/post/In193140/


All Articles