基于 SSH 的任务调度系统
文末附有完整项目代码
在当今科技飞速发展的时代,任务调度系统的重要性日益凸显。本文将详细介绍一个基于 SSH(Spring+Struts2+Hibernate)的任务调度系统的设计与实现。
一、系统概述
本系统旨在改变传统人工任务调度方式,通过计算机计算最佳人员分配和时间分配,绘制任务调度图,实现任务的科学调度与团队协作。它采用 B/S 体系结构,主要使用 JAVA 语言,后台数据库为 MySQL。
二、系统设计
- 研究现状及设计目标:传统任务调度系统存在诸多问题,如人工管理效率低、现有调度算法多以时间轮转为主忽略纵向等。本系统采用 B/S 模式,具有可扩展性强、分离度高的优点,且选用市场广泛应用的关系型数据库 MySQL。系统角色分为组长和组员,各自具备不同功能。
- 关键问题及分析:
- 任务调度:需在三个约束条件下使树状任务集组合而成的项目用时最短。通过构建任务树并分类,采用动态关键路径策略、最短用时策略和首次适应调度策略来实现。
- 数据表间联系:数据复杂,业务逻辑关系也较复杂,通过外键联系保证业务操作稳定,重视表间联系以避免出现 bug 或 error。
- 系统安全性:基于 B/S 模式,加入注册和登录模块,根据不同用户角色分配功能权限,使用 Spring 拦截器验证登录状态,防止非法访问。
- 调度算法设计:
- 按照约束构造任务树。
- 将可调度任务和准可调度任务加入备选任务集,若为空则项目完成,否则根据动态关键路径策略选路径长度最长的可调度任务,若不唯一则选用时最短的。
- 应用首次适应调度算法调度所选任务,从任务树和备选任务集中删除该任务,重复此过程直至结束。
三、系统实现
- 公共模块:系统采用 struts+hibernate+spring 开发,采用 MVC 模式和分层思想,结构分为表现层、业务层和数据访问层。公共模块包括公共配置文件,如 applicationContext-common.xml,其中配置了数据源、Hibernate 的 SessionFactory、事务管理器等,部分代码如下:
xml
<?xml version="1.0" encoding="UTF-8"?>
<beans><!-- 启用 spring 注解支持 --><context:annotation-config /><!-- 启动 Spring 自动扫描功能 --><context:component-scan base-package="com.fcq.schedule.job" /><!-- 配数据源 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"><property name="driverClass" value="com.mysql.jdbc.Driver" /><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/generation_design?characterEncoding=utf8&useSSL=true" /><property name="user" value="root" /><property name="password" value="123456" /><property name="maxPoolSize" value="80" /><property name="minPoolSize" value="1" /><property name="initialPoolSize" value="1" /><property name="maxIdleTime" value="20" /></bean><!-- 定义 Hibernate 的 SessionFactory --><bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><prop key="show_sql">true</prop><prop key="hibernate.jdbc.batch_size">20</prop><!-- 自动创建数据表 --><prop key="hibernate.hbm2ddl.auto">update</prop></props></property><!-- 使用配置文件 --><property name="mappingLocations"><list><value>classpath:com/fcq/schedule/job/po/*.hbm.xml</value></list></property></bean><bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory"></property></bean><!-- 配置事务管理器 (声明式的事务) --><bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><!-- 配置事务通知属性 --><tx:advice id="txadvice" transaction-manager="transactionManager"><!-- 定义事务传播属性 --><tx:attributes><tx:method name="get*" read-only="false" propagation="REQUIRED" /><tx:method name="find*" read-only="false" propagation="REQUIRED" /><tx:method name="save*" read-only="false" propagation="REQUIRED" /><tx:method name="reg*" read-only="false" propagation="REQUIRED" /><tx:method name="modify*" read-only="false" propagation="REQUIRED" /><tx:method name="remove*" read-only="false" propagation="REQUIRED" /><tx:method name="*" propagation="REQUIRED" read-only="true" /></tx:attributes></tx:advice><!-- 配置事务切面;那些类那些方法使用事务 --><aop:config><!-- 只对业务逻辑层实施事务 --><aop:pointcut id="allManagerMethod" expression="execution(* com.fcq.schedule.job.service..*.*(..))" /><aop:advisor pointcut-ref="allManagerMethod" advice-ref="txadvice" /></aop:config>
</beans>
还包括 applicationContext-beans.xml,用于 Spring 管理 Struts2 的 Action。
四、数据库设计
设计了包含用户表(USER)、项目表(PROJECT)、项目任务表(JOB)、参与项目表(JOIN_PROJECTS)、任务关系表(JOB_CONNECTION)、消息表(MESSAGE)的 6 张表,以满足系统需求。
五、总结
本任务调度系统具有良好的人机交互性,能提高工作效率,降低沟通成本,且开发运行成本低,经济效益显著。通过合理的系统设计和实现,为项目组任务调度和团队协作提供了有力支持。希望本文能为大家在相关系统的开发中提供一些参考和帮助。
资源
完整地址
源码地址
相关文章:
![](https://i-blog.csdnimg.cn/direct/477379116ef24bd5959377b471f534aa.png)
基于 SSH 的任务调度系统
文末附有完整项目代码 在当今科技飞速发展的时代,任务调度系统的重要性日益凸显。本文将详细介绍一个基于 SSH(SpringStruts2Hibernate)的任务调度系统的设计与实现。 一、系统概述 本系统旨在改变传统人工任务调度方式,通过计算…...
![](https://i-blog.csdnimg.cn/direct/91ad74c2af6f44349bbb523d98602826.png#pic_center)
filestream安装使用全套+filebeat的模块用法
1 filestream介绍 官方宣布:输入类型为log在filebeat7.16版本已经弃用了 Filestream 是 Filebeat 中的一种 输入类型(Input),用于处理日志文件的读取。它是为了取代 Filebeat 中传统的 log 输入(Input)设…...
![](https://img-blog.csdnimg.cn/9b70aa7d88a648b08fee4f1450ec7ac0.png)
java项目之房屋租赁系统源码(springboot+mysql+vue)
项目简介 房屋租赁系统实现了以下功能: 房屋租赁系统的主要使用者分为: 系统管理:个人中心、房屋信息管理、预约看房管理、合同信息管理、房屋报修管理、维修处理管理、房屋评价管理等模块的查看及相应操作; 房屋信息管理&#…...
![](https://i-blog.csdnimg.cn/direct/56e11e37ea8f4975a7031a1587e10e5c.png)
sap mm学习笔记
1. 业务流程 2. 组织架构 3. 物料主数据 4.采购主数据 5. 采购管理 6. 库存管理 7.物料主数据 8. 采购申请 ME51N...
![](https://i-blog.csdnimg.cn/img_convert/b3279f942ab4c460c5f3fc8ea9404027.gif)
代码随想录_链表
代码随想录02 链表 203.移除链表元素 力扣题目链接(opens new window) 题意:删除链表中等于给定值 val 的所有节点。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5] 示例 2: 输入:he…...
![](https://www.ngui.cc/images/no-images.jpg)
EF Code 并发控制
【悲观控制】 不推荐用,EF Core 没有封装悲观并发控制的使用,需要使用原生Sql来使用悲观并发控制 一般使用行锁、表锁等排他锁对资源进行锁定,同时只有一个使用者操作被锁定的资源 拿sql server举例,可以使用表所、或者行所解决…...
![](https://www.ngui.cc/images/no-images.jpg)
ceph fs status 输出详解
ceph fs status 命令用于显示 Ceph 文件系统的状态信息,其中各列的含义如下: RANK:元数据服务器(MDS)的等级或标识符。 STATE:MDS 的当前状态,例如 active(活跃)、stan…...
![](https://i-blog.csdnimg.cn/img_convert/a8607eac360b15d4fe8d3a2cb305551c.png)
FFmpeg Muxer HLS
使用FFmpeg命令来研究它对HLS协议的支持程度是最好的方法: ffmpeg -h muxerhls Muxer HLS Muxer hls [Apple HTTP Live Streaming]:Common extensions: m3u8.Default video codec: h264.Default audio codec: aac.Default subtitle codec: webvtt. 这里面告诉我…...
![](https://i-blog.csdnimg.cn/img_convert/ad90abf88be5a206bb543aef6d6d1ac7.png)
如何用SQL语句来查询表或索引的行存/列存存储方式|OceanBase 用户问题集锦
一、问题背景 自OceanBase 4.3.0版本起,支持了列存引擎,允许表和索引以行存、纯列存或行列冗余的形式创建,且这些存储方式可以自由组合。除了使用 show create table命令来查看表和索引的存储类型外,也有用户询问如何通过SQL语句…...
![](https://i-blog.csdnimg.cn/direct/d42aae37f0a84104bd3a732241fbec0b.png)
回归预测 | MATLAB实GRU多输入单输出回归预测
回归预测 | MATLAB实GRU多输入单输出回归预测 目录 回归预测 | MATLAB实GRU多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 回归预测 | MATLAB实GRU多输入单输出回归预测。使用GRU作为RNN的一种变体来处理时间序列数据。GRU相比传统的RNN有较好的记…...
![](https://i-blog.csdnimg.cn/direct/d8ffb62f4c044ccdbdccd8324c6a9d45.png#pic_center)
【OpenGL/Assimp】渲染模型、半透明材质与封装光源
文章目录 渲染成果Assimp库准备:Mesh类修改:透明贴图使用:光源封装:使用方式在如下测试环境中: 渲染成果 Assimp库准备: 从GitHub拉取源码,根据网络教程,借助CMake生成VS工程项目&a…...
![](https://www.ngui.cc/images/no-images.jpg)
pandas与sql对应关系【帮助sql使用者快速上手pandas】
本页旨在提供一些如何使用pandas执行各种SQL操作的示例,来帮助SQL使用者快速上手使用pandas。 目录 SQL语法一、选择SELECT1、选择2、添加计算列 二、连接JOIN ON1、内连接2、左外连接3、右外连接4、全外连接 三、过滤WHERE1、AND2、OR3、IS NULL4、IS NOT NULL5、B…...
![](https://www.ngui.cc/images/no-images.jpg)
Linux WEB漏洞
定义:Linux Web 漏洞是指在基于 Linux 操作系统的 Web 应用程序、Web 服务器软件或者相关的网络服务配置中存在的安全弱点。这些漏洞可能导致攻击者未经授权访问敏感信息、篡改网页内容、执行恶意代码,甚至完全控制服务器。 常见类型及原理 SQL 注入漏…...
![](https://i-blog.csdnimg.cn/direct/45f22ee579e8480d9e0aed501504ec45.png)
音视频入门基础:RTP专题(2)——使用FFmpeg命令生成RTP流
通过FFmpeg命令可以将一个媒体文件转推RTP: ffmpeg -re -stream_loop -1 -i input.mp4 -c:v copy -an -f rtp rtp://192.168.0.102:5400 但是通过ffplay尝试播放上述产生的RTP流时会报错:“Unable to receive RTP payload type 96 without an SDP file …...
![](https://i-blog.csdnimg.cn/direct/448c2d1066014260a814b6a1015a5f8f.png)
大语言模型预训练、微调、RLHF
转发,如有侵权,请联系删除: 1.【LLM】3:从零开始训练大语言模型(预训练、微调、RLHF) 2.老婆饼里没有老婆,RLHF里也没有真正的RL 3.【大模型微调】一文掌握7种大模型微调的方法 4.基于 Qwen2.…...
![](https://i-blog.csdnimg.cn/direct/7f2aa44b65374e2b8510407d61d267bb.png)
vue3后台系统动态路由实现
动态路由的流程:用户登录之后拿到用户信息和token,再去请求后端给的动态路由表,前端处理路由格式为vue路由格式。 1)拿到用户信息里面的角色之后再去请求路由表,返回的路由为tree格式 后端返回路由如下: …...
![](https://i-blog.csdnimg.cn/direct/8a0bbd49d20a414f8de97d0a77118c76.png)
解决idea中无法拖动tab标签页的问题
1、按 Ctrl Alt S 打开设置,找到路径 File | Settings | Appearance & Behavior | Appearance 2、去掉勾选 Drag-and-drop with Alt pressed only 即可...
![](https://i-blog.csdnimg.cn/direct/0fa664f61809449c93ff682d6b8b35d7.png)
WMS仓库管理系统,Vue前端开发,Java后端技术源码(源码学习)
一、项目背景和建设目标 随着企业业务的不断扩展,仓库管理成为影响生产效率、成本控制及客户满意度的重要环节。为了提升仓库作业的透明度、准确性和效率,本方案旨在构建一套全面、高效、易用的仓库管理系统(WMS)。该系统将涵盖库…...
![](https://i-blog.csdnimg.cn/direct/c0bd22ec97b4424790b1842aa91acee9.png)
25/1/12 嵌入式笔记 学习esp32
了解了一下位选线和段选线的知识: 位选线: 作用:用于选择数码管的某一位,例如4位数码管的第1位,第2位) 通过控制位选线的电平(高低电平),决定当前哪一位数码管处于激活状…...
![](https://i-blog.csdnimg.cn/direct/f0311454ea414663a7aa6e47cbdf061b.png)
【NLP】ELMO、GPT、BERT、BART模型解读及对比分析
文章目录 一、基础知识1.1 Word Embedding(词嵌入)1.2 词嵌入模型1.3 神经网络语言模型NNLM 二、ELMO2.1 ELMO的提出2.2 ELMO核心思想2.3 ELMO的优缺点 三、GPT3.1 Transformer3.2 GPT简介3.3 GPT模型架构3.4 预训练及微调3.5 GPT和ELMO对比 四、BERT4.1…...
![](https://www.ngui.cc/images/no-images.jpg)
go语言学习(数组,切片,字符串)
字符串 如果里面存储的是汉字,那么其实就是存储的是UTF--8编码,所以一个字会对应多个字节.如果想要获取汉字的个数,可以使用rune,来处理unicode字符 length: utf8.RuneCountInString( s) 如果只使用len()获取的是字节的个数, 字符串的功能 1,获取字节长度 len(xx) 2,获取字…...
![](https://i-blog.csdnimg.cn/direct/9159e15d8cd64a738a0b061b496a9b56.png#pic_center)
PM 实战 - 智能药盒PRD + 市场规模分析
写在前面 智能硬件 PRD 实例资源很少,Po下个人作品,假定前提为to Boss需求,目标在于覆盖产品设计核心部分(用户画像Persona、产品逻辑图、产品架构图、软件原型图、硬件低保真设计、用例Use Case、硬件标准)。不是申请…...
![](https://www.ngui.cc/images/no-images.jpg)
SQL刷题快速入门(二)
其他章节:SQL刷题快速入门(一) 承接上一章节,本章主要讲SQL的运算符、聚合函数、SQL保留小数的几种方式三个部分 运算符 SQL 支持多种运算符,用于执行各种操作,如算术运算、比较、赋值、逻辑运算等。以下…...
![](https://i-blog.csdnimg.cn/direct/0df0f4c1aac142a6a44907866ae83e79.png)
hive迁移后修复分区慢,怎么办?
我有1个30TB的分区表,客户给的带宽只有600MB,按照150%的耗时来算,大概要迁移17小时。 使用hive自带的修复分区命令(一般修复分区比迁移时间长一点),可能要花24小时。于是打算用前面黄大佬的牛B方案。 Hive增…...
![](https://i-blog.csdnimg.cn/direct/7aee8fa71e9b4d129d4b6ec75ea7cffd.png)
代码随想录算法训练营day27
代码随想录算法训练营 —day27 文章目录 代码随想录算法训练营前言一、贪心算法理论基础二、455.分发饼干三、376. 摆动序列53. 最大子数组和总结 前言 今天是算法营的第27天,希望自己能够坚持下来! 今日任务: ● 贪心算法理论基础 ● 455.…...
![](https://www.ngui.cc/images/no-images.jpg)
python 代码使用 DeepXDE 库实现了一个求解二维非线性偏微分方程(PDE)的功能
import deepxde as dde import numpy as np import matplotlib.pyplot as plt import tensorflow as tf# 设置时空计算域 Lx 1 # x 范围从 0 到 1 Ly 1 # y 范围从 0 到 1 Lt 0.05 # t 范围从 0 到 0.05 geom dde.geometry.Rectangle([0, 0], [Lx, Ly]) # 空间域 timed…...
![](https://www.ngui.cc/images/no-images.jpg)
【Go】:深入解析 Go 1.24:新特性、改进与最佳实践
前言 Go 1.24 尚未发布。这些是正在进行中的发布说明。Go 1.24 预计将于 2025 年 2 月发布。本文将深入探讨 Go 1.24 中引入的各项更新,并通过具体示例展示这些变化如何影响日常开发工作,确保为读者提供详尽而有价值的参考。 新特性及改进综述 HTTP/2 …...
![](https://www.ngui.cc/images/no-images.jpg)
VUE3 一些常用的 npm 和 cnpm 命令,涵盖了修改源、清理缓存、修改 SSL 协议设置等内容。
以下是一些常用的 npm 和 cnpm 命令,涵盖了修改源、清理缓存、修改 SSL 协议设置等内容。 npm 常用命令 1. 修改 npm 源 更改为淘宝的 npm 镜像源(可以提高安装速度): bash复制代码 npm config set registry https://registry…...
![](https://i-blog.csdnimg.cn/direct/1392a29463334c718404b05820f35467.png)
【SpringBoot】@Value 没有注入预期的值
问题复现 在装配对象成员属性时,我们常常会使用 Autowired 来装配。但是,有时候我们也使用 Value 进行装配。不过这两种注解使用风格不同,使用 Autowired 一般都不会设置属性值,而 Value 必须指定一个字符串值,因为其…...
![](https://i-blog.csdnimg.cn/img_convert/999914bb6f27183fcb8d724a184125c4.png)
【STM32-学习笔记-6-】DMA
文章目录 DMAⅠ、DMA框图Ⅱ、DMA基本结构Ⅲ、不同外设的DMA请求Ⅳ、DMA函数Ⅴ、DMA_InitTypeDef结构体参数①、DMA_PeripheralBaseAddr②、DMA_PeripheralDataSize③、DMA_PeripheralInc④、DMA_MemoryBaseAddr⑤、DMA_MemoryDataSize⑥、DMA_MemoryInc⑦、DMA_DIR⑧、DMA_Buff…...
![](https://img-blog.csdnimg.cn/20191126143138993.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNTQyNzI4,size_16,color_FFFFFF,t_70)
网站建设技术经理岗位职责/如何自己建设网站
一、百度地图 百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可帮助您在网站中构建功能丰富、交互性强的地图应用,支持PC端和移动端基于浏览器的地图应用开发,且支持HTML5特性的地图开发。该套API免费对外开放。自v1.5版本…...
![](/images/no-images.jpg)
如何在网站上做支付功能/网站提交
在想cocos适配之前,我们想想网页是怎么适配的。浏览器有各种规格,网页的一般做法是:背景图片铺满,网页内容保持在背景图片上居中,就实现了适应或者适配。css一般这样: .bg{ height:582px; background-image…...
![](/images/no-images.jpg)
怎么做网站 ppt/免费建网页
ip地址规范: ip地址的规范为(1~255).(0~255).(0~255) ip地址验证: 方法一:字符串切割,截取 1 #!/usr/bin/env python32 # …...
![](/images/no-images.jpg)
上海浦东做网站/全国疫情高峰感染高峰进度查询
环境:Red Hat 6.7 服务端:192.168.163.128 客户端:192.168.163.131 背景:解决多个服务器之间数据共享 环境检查: 1、检查服务器是否安装nfs服务 rpm -q nfs-utils 2、如果没有安装的话执行 yum install …...
iis建立网站/百度搜索资源管理平台
前面讲了InputFormat,就顺便讲一下Writable的东西吧,本来应当是放在HDFS中的。 当要在进程间传递对象或持久化对象的时候,就需要序列化对象成字节流,反之当要将接收到或从磁盘读取的字节流转换为对象,就要进行反序列化…...
![](/images/no-images.jpg)
护肤品网站建设分析/石家庄全网seo
公司新来的同事说,他们是用javascript代码拼html代码的,如果要修改值,就是修改对象的属性。 交代下,我们现在都是用拼字符串的方式拼html代码的。他提到如果写在单独的javascript文件中,可以用工具对js文件进行加密。 …...