ultraiso刻录U盘启动盘下载安装Ubuntu18

  1. 官网下载为试用,点击”继续使用“
    这里写图片描述
  2. ”文件“→选择刚刚下载的iso镜像文件
    这里写图片描述
  3. ”启动“→”写入硬盘映像“
    硬盘驱动器:U盘
    映像文件:下载的iso镜像文件
    写入方式:RAW
    这里写图片描述
    (原来写入方式选择默认的来着,但是失败了,失败结果如下)
    这里写图片描述
  4. 点击”是“,格式化U盘原有文件
    这里写图片描述
  5. 等待进度条走到最后,出现”刻录成功“字样
    这里写图片描述
四、安装系统
  1. 先插入启动盘,后开启服务器
  2. 选择Install Ubuntu
    这里写图片描述
  3. 选择English(US)
    这里写图片描述
  4. 选择Normal Installation
    这里写图片描述
  5. 选择Erase disk and install Ubuntu,清空磁盘安装Ubuntu
    这里写图片描述
  6. 点击Continue,确认改写磁盘
    这里写图片描述
  7. Where are you页面,选择我国的Shanghai
    这里写图片描述
  8. Who are you页面,自己设置登录用户名、计算机设备名、登陆密码
    这里写图片描述
  9. 拔出启动盘,点击Restart Now
    这里写图片描述
  10. 走到这个页面后就不动了,所以强制重启
    这里写图片描述
  11. 开机后输入登陆用户名和密码
  12. 输入命令开启网卡
[root@localhost ~]# ip link set eno1 up
[root@localhost ~]# ip addr

直到出现如下结果,也就是蓝色框框中出现ip,即连接网络成功
这里写图片描述

接下来就可以连接远端Windows电脑了。

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!**

### RuoYi 分离版中的定时任务实现方式 RuoYi 是一款基于 Spring Boot 和 Vue 的开源前后端分离快速开发平台,其定时任务模块通过 Quartz 调度框架来实现。以下是关于如何在 RuoYi 分离版中实现定时任务的具体方法。 #### 1. 配置 Quartz 调度器 Quartz 是一个强大的调度库,用于管理定时任务的触发时间、频率等参数。在 RuoYi 中,Quartz 已经被集成并封装好,开发者只需关注任务逻辑即可。 需要确保 `application.yml` 文件中有如下配置项[^1]: ```yaml spring: quartz: job-store-type: memory # 使用内存存储,默认值 properties: org.quartz.threadPool.threadCount: 10 # 设置线程池大小 ``` #### 2. 创建自定义任务类 为了实现具体的业务逻辑,需创建一个新的任务类,并继承 `AbstractJob` 或直接实现 `Job` 接口。以下是一个简单的例子,展示了一个打印当前时间的任务类[^3]: ```java package com.ruoyi.project.monitor.task; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class RyTestTask implements Job { private static final Logger log = LoggerFactory.getLogger(RyTestTask.class); @Override public void execute(JobExecutionContext context) throws JobExecutionException { try { String jobName = context.getJobDetail().getKey().getName(); log.info("任务 {} 执行成功, 当前时间为 {}", jobName, System.currentTimeMillis()); } catch (Exception e) { log.error("任务执行失败", e); } } } ``` #### 3. 前后端交互设计 前端页面负责显示已有的任务列表,并提供新增、编辑和删除等功能按钮;后台 API 则处理这些请求并将结果返回给前端。具体功能描述可以参考官方文档或笔记[^2]。 - **前端部分**: Vue 组件会调用接口获取所有可用的任务信息,并渲染成表格形式供用户查看。 - **后端部分**: 提供 RESTful API 来支持增删改查操作,同时允许动态调整 Cron 表达式以改变运行周期。 #### 4. 数据库存储结构 所有的任务都会保存至数据库表 `qrtz_job_details` 及其他相关联的表里(如触发器详情)。每当新建或者修改某个计划时,系统就会更新对应的记录。 #### 5. 测试与部署注意事项 完成上述步骤之后就可以测试整个流程是否正常工作了。记得检查日志文件确认是否有错误发生,并且验证实际效果是否满足预期需求。 --- ### 示例代码总结 下面给出完整的项目目录结构调整后的简单示例程序片段以便于理解整体架构布局: ```java // TaskService.java - 处理服务层逻辑 @Service public class TaskService { @Autowired private Scheduler scheduler; public boolean addTask(String beanName, String methodName, String cronExpression){ try{ Class clazz = Class.forName(beanName); Object targetObject = ApplicationContext.getBean(clazz.getName()); Method method = clazz.getMethod(methodName,null); TriggerKey triggerKey = new TriggerKey(beanName,"group"); CronTriggerImpl trigger = (CronTriggerImpl)scheduler.getTrigger(triggerKey); if(null !=trigger ){ return false ; // 如果存在则不重复添加 } JobDetail jobDetail= JobBuilder.newJob(SimpleJobFactory.createJobDetail(targetObject,method)).withIdentity(beanName).build(); CronScheduleBuilder scheduleBuilder=CronScheduleBuilder.cronSchedule(cronExpression); CronTrigger cronTrigger=newTrigger().withIdentity(beanName+"Trigger","group").withSchedule(scheduleBuilder).build(); scheduler.scheduleJob(jobDetail,cronTrigger ); return true ; }catch(Exception ex){ throw new RuntimeException(ex.getMessage(),ex ); } } } // SimpleJobFactory.java - 动态加载 Bean 方法工厂工具类 public class SimpleJobFactory extends AdaptableJobFactory { ... } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值