微服务项目(飞机航行)
1上游服务(类似于指挥部)给我发消息(mq)告诉我何时起飞(我是飞机)并且会给我规划航线 航线为一个集合 比如从 起始点a 飞到结束点d 中间经过 a b c d这四个点 ,还有个任务是在某个点停留十五分钟 在这十五分钟内要频繁给引擎发探测的指令
2.我主要做的事是把我当前位置的a的经纬度与下一个点的经纬度b 拿到这两个经纬度去调用python的模型 然后他会给我规划这两个点之间具体应该怎么飞 他会给我返回一些数据。
3.我拿着模型给我反的数据去调用另一个模型(引擎) 通过(mq)给引擎发消息 他在经过运算返回给我一些信息 他是一条一条发的类似于for循环 等我接收到这个消息之后我把这个数据实时返回给前端,并发送mq消息给指挥部
问题:我该怎么实现这个功能,和用什么技术,还有就是当从a到b走完了 我如何在调模型 把当前坐标(b)和c的的坐标接着传给模型和引擎 继续下一步这样直到把所有给我规划的路线走完,还有一个问题是我如何手动创建xxl-job任务 实现代码形似的创建定时任务并启动在springcloud项目中
![](https://profile-avatar.csdnimg.cn/419acce82db84add940ee3f940d8c346_weixin_44699664.jpg!4)
Java微服务问题求解
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
16条回答 默认 最新
- Kwan的解忧杂货铺@新空间代码工作室 2024-03-17 14:45关注
代码缝合 下午好🌅🌅🌅
本答案参考ChatGPT-3.5针对你提出的问题,以下是实现功能的解决方案以及推荐的技术栈:
-
实现接收上游服务的消息并规划航线:
- 使用消息队列(MQ)来接收上游服务发来的消息,如ActiveMQ、RabbitMQ等。
- 在接收到消息后,解析航线集合,并根据其中规定的停留时间频繁发送探测指令给引擎。
-
调用Python模型进行飞行规划:
- 使用Java调用Python模型,可以使用jni4net、Py4J等方式进行Java和Python的交互。
- 将当前位置经纬度和下一个点的经纬度作为输入参数传递给Python模型。
- 调用Python模型后,获取返回的飞行规划数据。
-
与引擎进行消息通信:
- 使用MQ与引擎进行通信,在经过计算后,引擎向你发送一条消息。
- 你接收到引擎的消息后,实时将数据返回给前端,并通过MQ向上游服务发送消息。
-
依次按照规划的路线飞行:
- 在每个航线点到达后,获取当前点的坐标并传递给下一个点和引擎进行下一步的飞行规划。
- 确保在每个航线点到达后,调用Python模型和引擎进行相应的计算和通信。
- 循环以上过程,直至所有给定的路线都被飞行完毕。
-
手动创建xxl-job定时任务:
- 使用xxl-job作为任务调度中心,实现定时任务的创建和启动。
- 在项目中引入xxl-job的依赖,并进行相应的配置,包括在application.properties或application.yml中配置xxl-job的地址和与调度中心的连接。
- 在具体的任务类中,使用@XxlJob注解定义任务,并实现相应的业务逻辑。
- 在启动类中,添加@EnableXxlJob注解启用xxl-job。
以下是一个示例代码,展示如何使用xxl-job创建定时任务并启动:
@RestController public class JobController { @PostMapping("/addJob") public String addJob() { XxlJobInfo jobInfo = new XxlJobInfo(); jobInfo.setJobGroup(1); jobInfo.setJobCron("0/10 * * * * ?"); jobInfo.setAuthor("admin"); jobInfo.setExecutorRouteStrategy("FIRST"); jobInfo.setExecutorHandler("yourJobHandler"); jobInfo.setExecutorBlockStrategy("SERIAL_EXECUTION"); jobInfo.setGlueType("BEAN"); boolean success = XxlJobAdminTemplate.addJob(jobInfo); if (success) { return "Job added successfully!"; } else { return "Failed to add job..."; } } }
请确保在pom.xml文件中引入xxl-job的依赖,如:
<dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.3.0</version> </dependency>
这是一个简单的示例,可以根据你的具体业务需求进行修改和扩展。
综上所述,你可以采用以下技术栈来实现你的需求:
- 消息队列:ActiveMQ、RabbitMQ等
- Java和Python交互:jni4net、Py4J等
- 任务调度中心:xxl-job
- 框架:Spring Cloud
希望以上解决方案能对你有所帮助。如果还有其他问题,请随时追问。
解决 无用评论 打赏 举报 -
悬赏问题
- ¥25 使用cube ai 导入onnx模型时报错
- ¥15 关于#微信小程序#的问题:用一个网页显示所有关联的微信小程序数据,包括每个小程序的用户访问量
- ¥15 root的安卓12系统上,如何使apk获得root或者高级别的系统权限?
- ¥20 关于#matlab#的问题:如果用MATLAB函数delayseq可以对分数延时,但是延时后波形较原波形有幅度上的改变
- ¥15 使用华为ENSP软件模拟实现该实验拓扑
- ¥15 通过程序读取主板上报税口的数据
- ¥15 matlab修改为并行
- ¥15 大数据应用基础专业问题
- ¥20 数据分析出错了,希望有能人看看,解决一下
- ¥15 尝试访问%1服务的windows注册表时遇到问题。必须先解决此问题,然后才能运行安装过程。(请确认您正在使用管理员权限运行)373