/src/com/jeecms/cms/task/job/IndexStaticJob.java

https://gitlab.com/MetadataDev/mcms · Java · 70 lines · 57 code · 7 blank · 6 comment · 0 complexity · 6a6ed4c1166c502bd76255371a9c7596 MD5 · raw file

  1. package com.jeecms.cms.task.job;
  2. import java.io.IOException;
  3. import org.hibernate.Session;
  4. import org.hibernate.SessionFactory;
  5. import org.quartz.JobDataMap;
  6. import org.quartz.JobExecutionContext;
  7. import org.quartz.JobExecutionException;
  8. import org.quartz.SchedulerContext;
  9. import org.quartz.SchedulerException;
  10. import org.slf4j.Logger;
  11. import org.slf4j.LoggerFactory;
  12. import org.springframework.context.ApplicationContext;
  13. import org.springframework.orm.hibernate3.SessionFactoryUtils;
  14. import org.springframework.scheduling.quartz.QuartzJobBean;
  15. import com.jeecms.cms.entity.assist.CmsTask;
  16. import com.jeecms.cms.staticpage.StaticPageSvc;
  17. import com.jeecms.core.entity.CmsSite;
  18. import com.jeecms.core.manager.CmsSiteMng;
  19. import freemarker.template.TemplateException;
  20. /**
  21. * @Description 首页静态化的job类
  22. * @author tom
  23. */
  24. public class IndexStaticJob extends QuartzJobBean{
  25. private static final Logger log = LoggerFactory.getLogger(IndexStaticJob.class);
  26. protected void executeInternal(JobExecutionContext context)throws JobExecutionException {
  27. try {
  28. SchedulerContext schCtx = context.getScheduler().getContext();
  29. JobDataMap jdm=context.getJobDetail().getJobDataMap();
  30. //获取Spring中的上下文
  31. ApplicationContext appCtx = (ApplicationContext)schCtx.get("applicationContext");
  32. this.cmsSiteMng= (CmsSiteMng)appCtx.getBean("cmsSiteMng");
  33. this.staticPageSvc= (StaticPageSvc)appCtx.getBean("staticPageSvc");
  34. this.sessionFactory=(SessionFactory) appCtx.getBean("sessionFactory");
  35. this.siteId=Integer.parseInt((String) jdm.get(CmsTask.TASK_PARAM_SITE_ID));
  36. } catch (SchedulerException e1) {
  37. // TODO 尚未处理异常
  38. e1.printStackTrace();
  39. }
  40. staticIndex();
  41. }
  42. public void staticIndex(){
  43. log.info("static index page");
  44. CmsSite site=cmsSiteMng.findById(siteId);
  45. Session session = SessionFactoryUtils.getSession(sessionFactory, true);
  46. session=sessionFactory.openSession();
  47. session.beginTransaction();
  48. site=(CmsSite) session.get(site.getClass(), site.getId());
  49. try {
  50. staticPageSvc.index(site);
  51. } catch (IOException e) {
  52. log.error("static index error!", e);
  53. } catch (TemplateException e) {
  54. log.error("static index error!", e);
  55. }
  56. session.flush();
  57. session.close();
  58. }
  59. private StaticPageSvc staticPageSvc;
  60. private CmsSiteMng cmsSiteMng;
  61. private SessionFactory sessionFactory;
  62. private Integer siteId;
  63. }