返回顶部
首页 > 资讯 > 精选 >Jspxcms定时任务的开发是怎样的
  • 392
分享到

Jspxcms定时任务的开发是怎样的

2023-06-26 07:06:00 392人浏览 泡泡鱼
摘要

本篇文章为大家展示了jspxcms定时任务的开发是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。系统中有定时任务功能,里面有一些系统已经定义好的任务类型。如果系统自带的任务类型里没有自己需要的

本篇文章为大家展示了jspxcms定时任务的开发是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

系统中有定时任务功能,里面有一些系统已经定义好的任务类型。如果系统自带的任务类型里没有自己需要的,可以开发一个任务类型。

本着无侵入的二次开发设计思想,开发一个自己的任务类型也可以做到不修改系统原有代码和文件。

定时任务配置文件

Jspxcms6.5及以后版本:

/src/main/resources/conf/application.properties

Jspxcms6.0及以前的版本:

/WEB-INF/conf/application.properties

相关配置内容:

scheduleJob.100=com.jspxcms.core.quartz.InfoPublishJobscheduleJobPath.com.jspxcms.core.quartz.InfoPublishJob=scheduleJob.200=com.jspxcms.core.quartz.htmlHomeJobscheduleJobPath.com.jspxcms.core.quartz.HtmlHomeJob=scheduleJob.300=com.jspxcms.ext.quartz.CollectJobscheduleJobPath.com.jspxcms.ext.quartz.CollectJob=../../ext/collect/schedule_job.do

自定义的定时任务类型的配置也可以写在其它的application.properties文件中,如/src/main/resources/conf/plugin/plug/application.properties。

定时任务类型序号

scheduleJob.300:序号300决定这个类型的排序,即在选择任务类型时的前后顺序。序号不能重复。

定时任务名称

com.jspxcms.ext.quartz.CollectJob既是定时任务实现类,又是定时任务类型名称。需要在国际化文件中定义相应的国际化名称。

国际化文件(Jspxcms6.5及以后版本):/src/main/resources/messages/ext/ext.properties

国际化文件(Jspxcms6.0及以前的版本):/WEB-INF/messages/ext/ext.properties

scheduleJob.code.com.jspxcms.ext.quartz.CollectJob=采集

需以scheduleJob.code.开头。国际化名称也可以写在其他文件中,如/src/main/resources/messages/plugin/plug/plug.properties。

定时任务实现类

com.jspxcms.ext.quartz.CollectJob是定时任务实现类。

public class CollectJob implements Job {    private static final Logger logger = LoggerFactory            .getLogger(CollectJob.class);    public static final String COLLECT_ID = "collectId";    public void execute(JobExecutionContext context)            throws JobExecutionException {        try {            ApplicationContext appContext = (ApplicationContext) context                    .getScheduler().getContext().get(Constants.APP_CONTEXT);            Collector collector = appContext.getBean(Collector.class);            JobDataMap map = context.getJobDetail().getJobDataMap();            Integer collectId = map.getIntegerFromString(COLLECT_ID);            collector.start(collectId);            System.out.println("collect ok");            logger.info("run collect job: " + collectId);        } catch (SchedulerException e) {            throw new JobExecutionException("Cannot get ApplicationContext", e);        }    }}

需要实现org.quartz.Job接口,在public void execute(JobExecutionContext context)方法中编写任务需要执行的代码。

ApplicationContext appContext = (ApplicationContext) context.getScheduler().getContext().get(Constants.APP_CONTEXT);可以获取spring的ApplicationContext,通过ApplicationContext可以获取到Spring管理的对象,如Collector collector = appContext.getBean(Collector.class);。注意:这个类中必须使用这种方法获取Spring管理的对象,不能使用@Autowired等其他方式。

Integer collectId = map.getIntegerFromString(COLLECT_ID);可以获取额外的参数。

额外的参数

scheduleJobPath.com.jspxcms.core.quartz.InfoPublishJob=如定时任务无需额外参数,则等号后面留空。

定时任务有时需要传递外的参数,比如采集定时任务需要选择执行哪个采集数据源。此时需要在定时任务新增/修改界面增加相应的录入项。

scheduleJobPath.com.jspxcms.ext.quartz.CollectJob=../../ext/collect/schedule_job.do

录入界面的Controller

编写一个获取录入界面的地址:../../ext/collect/schedule_job.do,这里使用相对路径,相对于定时任务新增界面的地址。

此例中,这个地址的实现类是com.jspxcms.ext.web.back.CollectController。

@Controller@RequestMapping("/ext/collect")public class CollectController {...    @RequestMapping("schedule_job.do")    public String scheduleJob(httpservletRequest request, org.springframework.ui.Model modelMap) {        Integer siteId = Context.getCurrentSiteId();        List<Collect> collectList = service.findList(siteId);        modelMap.addAttribute("collectList", collectList);        modelMap.addAttribute("includePage", "../../ext/collect/collect_job.jsp");        return "core/schedule_job/schedule_job_fORM";    }...}
  • modelMap.addAttribute("collectList", collectList);传递数据。

  • modelMap.addAttribute("includePage", "../../ext/collect/collect_job.jsp");传递录入界面。

录入界面的JSP

根据Controller中传递的includePage的值,对应JSP页面为:/WEB-INF/views/ext/collect/collect_job.jsp。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="Http://java.sun.com/jsp/jstl/core"%><%@ taglib prefix="s" uri="http://www.springframework.org/tags"%><%@ taglib prefix="f" uri="http://www.jspxcms.com/tags/form"%>  <tr>    <td class="in-lab" width="15%"><s:message code="scheduleJob.collectSource"/>:</td>    <td class="in-ctt" width="85%" colspan="3">      <select name="data_collectId">        <c:forEach var="collect" items="${collectList}">        <f:option value="${collect.id}" selected="${dataMap['collectId']}">${collect.name}</f:option>        </c:forEach>      </select>    </td>  </tr>
  • <select name="data_collectId">:此处的data_collectId对应定时任务实现类CollectJob中获取参数的方法Integer collectId = map.getIntegerFromString("collectId");

  • <c:forEach var="collect" items="${collectList}">:此处的${collectList}对应CollectController的modelMap.addAttribute("collectList", collectList);。

上述内容就是Jspxcms定时任务的开发是怎样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: Jspxcms定时任务的开发是怎样的

本文链接: https://www.lsjlt.com/news/307548.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Jspxcms定时任务的开发是怎样的
    本篇文章为大家展示了Jspxcms定时任务的开发是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。系统中有定时任务功能,里面有一些系统已经定义好的任务类型。如果系统自带的任务类型里没有自己需要的...
    99+
    2023-06-26
  • jspXCMS怎么开发定时任务
    这篇文章主要介绍了jspXCMS怎么开发定时任务的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jspXCMS怎么开发定时任务文章都会有所收获,下面我们一起来看看吧。系统中有定时任务功能,里面有一些系统已经定义好...
    99+
    2023-06-26
  • shell后台定时任务时crontab的用法是怎样的
    shell后台定时任务时crontab的用法是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。crontab的用法语法:crontab[-u username]|-l|-r...
    99+
    2023-06-13
  • SpringBoot定时任务及Cron表达式是怎样的
    这期内容当中小编将会给大家带来有关SpringBoot定时任务及Cron表达式是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。如何使用SpringBoot定时任务,并通过源码说明如何使用多线程处理各...
    99+
    2023-06-17
  • MySQL定时任务与存储过程是怎么样的
    MySQL定时任务与存储过程是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 shell 定时任务:/us...
    99+
    2024-04-02
  • java中常用的定时任务框架单体是怎样的
    本篇文章为大家展示了java中常用的定时任务框架单体是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、Timer+TimerTask这是jdk自带的java.util.Timer类,这个类允...
    99+
    2023-06-22
  • Android开发之定时任务(AlarmManager、WorkManager)
    Android 程序的定时任务主要有AlarmManager、WorkManager两种。 一、AlarmManager AlarmManager,又称闹钟,可以设置一次性任务,周期重复任务,定时重复任务。 AlarmManager 通过 ...
    99+
    2023-08-18
    android java 开发语言
  • mysql中怎样实现定时任务
    今天就跟大家聊聊有关mysql中怎样实现定时任务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。mysql 5.1:Create event crm_...
    99+
    2024-04-02
  • Python定时任务触发的方法是什么
    本篇内容介绍了“Python定时任务触发的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!APSchedulerAPSchedule...
    99+
    2023-07-05
  • oracle定时任务怎么开启
    oracle 定时任务启用指南:步骤: 创建专用于运行任务的用户,授予 create job 和 alter job 权限。步骤: 创建角色并授予 execute job 权限。步骤: ...
    99+
    2024-04-08
    oracle
  • Android开发技巧(三)—— 创建定时任务
    每种手机都有自己的休眠策略,Android手机在长时间不操作时会自动让CPU进入睡眠状态,这就导致JAVA原生Timer的定时任务无法运行。 所...
    99+
    2022-06-06
    定时任务 技巧 android开发 Android
  • django定时触发任务怎么配置
    在Django中,可以使用第三方库django-crontab来配置定时触发任务。下面是配置步骤: 安装django-cronta...
    99+
    2024-03-04
    django
  • Linux下的定时任务和延时任务的详解
    at at + time at 17:23 at> touch /mnt/file{1..9} ##延迟动作 at> 键入ctrl+d ##表示发起动作 at -l | atq ##查看当前任务 ...
    99+
    2022-06-04
    Linux定时任务和延时任务 Linux定时任务 Linux延时任务
  • SpringBoot开发实战系列之动态定时任务
    目录前言代码编写效果演示  启动修改停止后记前言 定时器是我们项目中经常会用到的,SpringBoot使用@Scheduled注解可以快速启用一个简单的定时器(详情请看我们之前的博客...
    99+
    2024-04-02
  • 怎么取消swoole的定时任务
    本文小编为大家详细介绍“怎么取消swoole的定时任务”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么取消swoole的定时任务”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。swoole的定时任务在swool...
    99+
    2023-07-05
  • NetBeans开发J2ME时的环境变量配置是怎样的
    NetBeans开发J2ME时的环境变量配置是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。你对NetBeans开发J2ME时要用的...
    99+
    2024-04-02
  • 如何利用Redis和Groovy开发定时任务功能
    如何利用Redis和Groovy开发定时任务功能引言:定时任务是现代软件开发中常见的需求之一,它能够在预定的时间点或间隔时间内自动执行特定的代码逻辑。在本文中,我们将介绍如何利用Redis和Groovy开发定时任务功能,并给出具体的代码示例...
    99+
    2023-10-22
    redis Groovy 定时任务
  • 详解SpringBoot开发案例之整合定时任务(Scheduled)
    来来来小伙伴们,基于上篇的邮件服务,定时任务就不单独分项目了,天然整合进了邮件服务中。不知道,大家在工作之中,经常会用到那些定时任务去执行特定的业务,这里列举一下我在工作中曾经使用到的几种实现。任务介绍 Java自带的java.util....
    99+
    2023-05-31
    spring boot 定时任务
  • 小程序开发页面窗口定位是怎样的
    这篇文章将为大家详细讲解有关小程序开发页面窗口定位是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。开发中我们要做一些类似遮罩层或者页面header固定...
    99+
    2024-04-02
  • Ubuntu的crontab定时任务怎么实现
    本篇内容介绍了“Ubuntu的crontab定时任务怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!(环境Ubuntu8.04)。 使...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作