我的编程空间,编程开发者的网络收藏夹
学习永远不晚

jspXCMS怎么开发定时任务

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

jspXCMS怎么开发定时任务

这篇文章主要介绍了jspXCMS怎么开发定时任务的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jspXCMS怎么开发定时任务文章都会有所收获,下面我们一起来看看吧。

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

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

定时任务配置文件

Jspxcms8.0及以后版本:

/class="lazy" data-src/main/resources/conf/conf.properties

Jspxcms6.5-7.5版本:

/class="lazy" data-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=/cmscp/ext/collect/schedule_job.do

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

定时任务类型序号

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

定时任务名称

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

国际化文件(Jspxcms6.5及以后版本):/class="lazy" data-src/main/resources/messages/ext/ext.properties

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

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

需以scheduleJob.code.开头。国际化名称也可以写在其他文件中,如/class="lazy" data-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=/cmscp/ext/collect/schedule_job.do

录入界面的Controller

编写一个获取录入界面的地址:/cmscp/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怎么开发定时任务”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“jspXCMS怎么开发定时任务”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

jspXCMS怎么开发定时任务

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

jspXCMS怎么开发定时任务

这篇文章主要介绍了jspXCMS怎么开发定时任务的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jspXCMS怎么开发定时任务文章都会有所收获,下面我们一起来看看吧。系统中有定时任务功能,里面有一些系统已经定义好
2023-06-26

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

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

oracle定时任务怎么开启

oracle 定时任务启用指南:步骤: 创建专用于运行任务的用户,授予 create job 和 alter job 权限。步骤: 创建角色并授予 execute job 权限。步骤: 使用 dbms_job 程序包创建定时任务。步骤: 使
oracle定时任务怎么开启
2024-04-08

Android开发之定时任务(AlarmManager、WorkManager)

Android 程序的定时任务主要有AlarmManager、WorkManager两种。 一、AlarmManager AlarmManager,又称闹钟,可以设置一次性任务,周期重复任务,定时重复任务。 AlarmManager 通过
2023-08-18

django定时触发任务怎么配置

在Django中,可以使用第三方库django-crontab来配置定时触发任务。下面是配置步骤:安装django-crontab库:pip install django-crontab在Django项目的settings.py文件中添加d
django定时触发任务怎么配置
2024-03-04

Android开发技巧(三)—— 创建定时任务

每种手机都有自己的休眠策略,Android手机在长时间不操作时会自动让CPU进入睡眠状态,这就导致JAVA原生Timer的定时任务无法运行。 所以我们需要借助Alarm唤醒CPU 一、Alarm机制 Alarm借助了AlermManager
2022-06-06

mysql定时任务怎么写

mysql 定时任务可通过 event 语句创建,用于在指定时间间隔自动执行任务。创建语法为:create event event_name on schedule [at start_time | every interval_value
mysql定时任务怎么写
2024-08-02

java定时任务如何触发

在Java中,可以使用java.util.Timer类或者java.util.concurrent.ScheduledExecutorService接口来实现定时任务的触发。1. 使用java.util.Timer类:```javaimpo
2023-08-29

Go怎么编写定时器与定时任务

这篇文章主要介绍“Go怎么编写定时器与定时任务”,在日常操作中,相信很多人在Go怎么编写定时器与定时任务问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Go怎么编写定时器与定时任务”的疑惑有所帮助!接下来,请跟
2023-07-02

怎么理解定时任务crontab

这篇文章将为大家详细讲解有关怎么理解定时任务crontab,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。脚本目录:[oracle@tangjian ~]$ mkdir -p /u01/app
2023-06-06

android怎么定时执行任务

在Android中,有几种方法可以定时执行任务。以下是其中的一些方法:1. 使用Handler和Runnable:可以通过Handler的postDelayed方法来实现定时执行任务。首先创建一个Handler对象,然后创建一个Runnab
2023-09-26

linux怎么设置定时任务

在Linux系统中,可以使用crontab命令来设置定时任务。1. 使用以下命令打开crontab编辑器:crontab -e2. 在编辑器中,每一行代表一个定时任务。每行的格式如下:* * * * * command其中,星号(*)代表所
2023-10-18

php定时任务怎么设置

在PHP中设置定时任务通常使用cron job来实现。Cron job是一个在Unix-like操作系统上用来定时执行任务的工具。以下是如何在Linux系统上设置一个PHP定时任务的步骤:打开终端并输入以下命令来编辑cron job表:cr
php定时任务怎么设置
2024-03-04

springboot定时任务怎么创建

如果你想了解更多关于springboot的知识,可以点击:JAVA教程使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式:  一、基于注解(@Scheduled)  二、基于接口(SchedulingConfigurer) 前者相信大家都
springboot定时任务怎么创建
2021-09-19

laravel定时任务怎么使用

这篇“laravel定时任务怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“laravel定时任务怎么使用”文章吧。应
2023-06-30

laravel定时任务怎么实现

在 Laravel 中,可以使用 Artisan 命令来创建和管理定时任务。以下是如何实现定时任务的步骤:创建定时任务类:首先,需要创建一个继承自 Illuminate\Console\Scheduling\Schedule 类的定时任务类
laravel定时任务怎么实现
2024-03-04

SpringBoot定时任务怎么实现

这篇文章主要讲解了“SpringBoot定时任务怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot定时任务怎么实现”吧!SpringBoot定时任务主要由两个注解完成
2023-06-05

Python3定时任务怎么设置

在Python中,可以使用`schedule`模块来设置定时任务。以下是一个示例代码,演示如何每隔一分钟打印一次当前时间:```pythonimport scheduleimport timedef job():print("Current
2023-08-17

Linux怎么定时执行任务

在Linux中,可以使用cron来定时执行任务。Cron是一个用于定期运行命令或脚本的Unix工具。要创建一个定时任务,可以按照以下步骤进行操作:1. 打开终端窗口,输入以下命令来编辑cron表:`crontab -e`2. 选择你喜欢的文
2023-08-12

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录