通过微服务如何实现java调用python脚本

一、java端:

1、创建一个微服务,然后在控制层编写接口(postman发送请求调用接口)

    @GetMapping("/reptile")
    public Integer reptile() {
        productClient.getReptile();
    }

2、创建一个fegin来发送http请求给java,注解参数需要name(根据自己需要写)和url(地址加端口号,地址建议使用127.0.0.1,端口号需要指定和python端口相同)

@FeignClient(name = "aiot-reptile-product", url = "127.0.0.1:8040")
public interface AIoTProductClient {
    /**
     * 发送http请求给Python
     * @return 爬虫数据
     */
    @GetMapping("/getReptile")
    Integer getReptile();
}

二、python端:

1、在脚本可以正常运行的前提下,引入flask框架

from flask import Flask
app = Flask(__name__)

2、配置java请求方法入口,路径要和fegin里面的请求路径相同,method默认为GET,如果是post需要指明。

@app.route("/getReptile",methods=['POST/GET'])
def main():

3.在启动入口代码处加端口号和ip地址

if __name__ == '__main__':
    app.run(port=8040, host='0.0.0.0')

三、调用流程和原理

java调用python其实就是发送http请求,以上这种方式是我觉得最简单的一种,java可以发送post请求传递json类型参数,python端也可以接收json类型的参数,只不过python返回的结果的数据的类型需要java端进行对应的处理,我用这种方式进行了爬虫脚本的调用和将爬虫结果的存储,通过批量插入操作存入数据库。

python端代码经过修饰后,启动脚本就是启动了一个监听器,监听对应ip加端口的http请求。类似于微服务,可以在前台或后台一直挂起。

四、总结

我也是在公司开发中遇到这样的问题,因为项目上的功能需要获取某一网站上的一些文章,我使用java+python的技术进行xx-job定时任务的调用,每天定时调用java代码去爬取最新的文章数据保存在我本地。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值