عند استخدام الكوارتز في SPRING BOOT ، تحتاج عمومًا إلى الرجوع إلى الفاصوليا التي تديرها الربيع في الوظيفة وضختها تلقائيًا عن طريق تحديد مصنع عمل.
الربيع لديه مهام توقيت الجدول الزمني الخاص به. عند استخدامها في صندوق الربيع ، لا يمكنه إدارة الوظائف ديناميكيًا ، لذلك يتم تنفيذها باستخدام الكوارتز.
تكوين الكوارتز في حذاء الربيع:
استيراد java.io.ioException ؛ استيراد java.util.properties ؛ استيراد org.springframework.beans.factory.annotation. org.springframework.context.annotation org.springframework.scheduling.quartz.schedulerfactorybean ؛@configuration@enblesChedulingpublic class quartzschedule {autowired myjobfactory myjobfactory ؛ Bean Public SchedulerFactoryBean SchedulerFactoryBean () يلقي IoException {SchedulerFactoryBean Factory = جديد SchedulerFactoryBean () ؛ مصنع. // تأخير Startup Factory.SetStartupDelay (20) ؛ // تحميل مصنع تكوين مصدر بيانات الكوارتز. // مصنع عمل مخصص لمصنع حقن الربيع. عودة المصنع } / ** * تحميل تكوين مصدر بيانات الكوارتز * * return * throws ioException * / Bean Public Properties QuartzProperties () يلقي IoException {propertiesFactoryBean propertiSFactoryBean = new propertiesfactorybean () ؛ propertiesfactorybean.setLocation (classpathResource جديد ("/quartz.properties")) ؛ propertiesfactorybean.afterpropertiesset () ؛ إرجاع propertiesfactorybean.getObject () ؛ }} من أجل استخدام الفاصوليا التي تديرها الربيع في الوظيفة ، يجب إعادة تعريف مصنع الوظائف:
ComponentPublic Class MyJobFactory يمتد AdaptableJobFactory {autowired private AutoWireCuteBeanFactory ablebeanfactory ؛ Override محمي كائن CreateJobinStance (حزمة triggerfiredbundle) يلقي الاستثناء {// استدعاء طريقة كائن الفئة الأصل jobinstance = super.createjobinstance (حزمة) ؛ // enjectablebeanfactory.autowirebean (JobInstance) ؛ إرجاع Jobinstance ؛ }} ثم يمكنك استخدام الفاصوليا المدارة في الربيع في الوظيفة
الطبقة العامة myjob تنفذ الوظيفة ، قابلة للتسلسل {{private static final long serialversionuid = 1L ؛ logger private logger = loggerfactory.getLogger (this.getClass ()) ؛ @autowired someservice someservice ؛ Override public void execute (JobexecutionContext Context) يلقي JobexecutionException {someservice.dosomething () ؛ }} الرمز التالي يخلق وظيفة:
JobDetail JobDetail = JobBuilder.newjob (((Job) class.forname (Job.getClazz ()). newinstance ()). JobDetail.getJobDatamap (). put ("extdata" ، job.getextData ()) ؛ // expressionshipbuilder thembuilder = cronscheduleBuilder.CronsChedule (Job.getCronexpression ()). // بناء Trigger TriggerBuilder <Crontrigger> triggerbuilder = triggerbuilder.newtrigger (). withIdentity (triggerkey). if (job.getStartTime ()! = null) {triggerBuilder.startat (Job.getStartTime ()) ؛ } if (job.getendtime ()! = null) {triggerBuilder.endat (job.getendtime ()) ؛ } crontrigger trigger = triggerbuilder.build () ؛ Scheduler.ScheduleJob (JobDetail ، Trigger) ؛ // الحقن لفئة الإدارة ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.