Java通过ScriptEngine执行脚本语言
前两天接到一个需求,大致归纳成以下三点:
要通过Java来解析并运行一段脚本
还不确定是什么语言的脚本
最终效果是Java把数据传进脚本里处理,处理完再接回来
看起来是不是很简单,但这做起来就不太顺手啊。经过一番了解,在我在哪里可以找到可用的JSR-223脚本语言列表?这个帖子里找到相关的知识。原来早在JDK1.6开始,Java就引入了JSR-223规范,让我们通过脚本引擎这种统一接口的方式在JVM上运行脚本语言。所以我最终选择了ScriptEngine来完成这个需求,他本身仅支持JavaScript,经过扩展后可支持Python、Ruby、Groovy等。
直奔主题,敲代码!
编写逻辑操作类这个类会被解析成脚本中对应的变量,可在脚本中调用类中的方法
12345678910111213141516171819202122public class Codec { // 存放上下文内容,用于回传数据 private final Sinks.Many<Context> processor = Sinks.many().multicast().onBa ...
PlanetScale-免费云数据平台
PlanetScale一个可以白嫖的云数据库。支持分支版本控制、cli命令行操作、web控制台操作、数据备份与保护等功能。下面来简单说一下他的使用
注册、登录老规矩,直接Github账号登录即可官网地址:PlanetScale* 这里可能需要使用某些爱国富强的方式才能打开,奇怪他居然把边缘节点去除了
创建数据库进入个人主页就能看到很大的一个create按钮,想都不用想直接点了
弹出一个小窗口也是不用多想,随便填一个名字接着点Create database
经过一番等待,页面上那个圈圈终于转没了,然后要干嘛?
当然是点Connect看看能不能连接数据库啊
芜湖~这里密码居然全是星星,所以应该点这个New password创建一个密码* 要注意这里的密码只显示一次,页面刷新就得重新生成了,有点token的意思啊
连接数据库随便搞个数据库GUI工具或者用你已有的项目代码连一下。
他这是一个部署在阿伟云的MySQL数据库,没钱或者比较抠搜的朋友们,冲!
Vercel部署Serverless函数
不了解Vercel的朋友可以先浏览上一篇文章 Vercel-免费Web应用托管平台。上文提到Vercel支持Python、Go、NodeJS、Ruby、PHP等语言的Serverless函数编写,下面就来尝试一下Serverless部署的过程。
环境准备以下步骤自行解决,不再赘述
123建个git仓库拉到本地,导入IDE安装各语言的SDK和IDE插件
编写配置文件创建vercel.json,填入以下内容
123456789101112131415161718192021222324252627{ "headers": [ { "source": "/(.*)", "headers": [ { "key": "Access-Control-Allow-Origin", "value": "*" } ...
Vercel-免费Web应用托管平台
Vercel是一个开箱即用的Web应用部署平台,相当于把GitHub Page和GitHub Action的特性相结合。这里给大家列一下他的几个特性:
针对个人用户是免费的,这个很重要;
支持GitHub登录、导入GitHub项目并直接部署;
支持N多种应用框架和模板,如Vue、React、Angular、Hexo、Next等;
支持Python、Go、NodeJS、Ruby、PHP(需要安装库)等语言的Serverless函数编写;
支持多分支部署;
支持自定义域名和SSL证书签发;
拥有全球CDN,无需担心访问速度问题下面就分享一下Vercel的基本使用
注册、登录这个步骤就不用多说了,通常github关联登录就行
项目创建和部署1)进入Dashboard,点击右手边Add New...按钮,选择Project
2)可选择从github(Import Git Repository)或第三方git(Import Third-Party Git Repository)导入项目,或者是通过官方提供的模板(Clone Template)创建项目(创建后会同步到github仓库)
3)配 ...
Docker环境下部署TDengine集群
一、Docker环境准备本文基于Windows 10+Docker Desktop单机搭建集群,如需跨主机搭建,请自行搜索Swarm或Docker跨主机通讯相关内容。
1、安装Docker DesktopDocker Desktop自带了Docker Compose,无需另外安装
12# 验证一下docker-compose --version
2、创建Docker网络1docker network create --driver bridge --subnet 172.18.0.0/16 taosnet
二、集群配置1、创建数据文件夹和配置文件123/path/to/tdengine-docker/node{n}/logs/path/to/tdengine-docker/node{n}/data/path/to/tdengine-docker/node{n}/taos.cfg
2、编辑docker-compose.yml12345678910111213141516171819202122232425262728293 ...
WSL使用systemctl命令报错
WSL(Windows Subsystem for Linux / 适用于Linux的Windows子系统)中使用systemctl命令会报以下错误:
System has not been booted with systemd as init system (PID 1). Can’t operate.Failed to connect to bus: Host is down
那出现以上的问题应该怎么解决呢?
微软声明在官方文档的数据库入门里面有提到这一点:
其他教程可能会使用操作系统的内置 init 系统来启动 MongoDB。 你可能会看到在教程或文章中使用了命令 sudo systemctl status mongodb。 目前 WSL 不支持 systemd(Linux 中的服务管理系统)。你应该不会注意到有什么区别,但是如果教程建议使用 sudo systemctl,请改用 sudo /etc/init.d/。 例如,对于WSL,sudo systemctl status docker 应改用 sudo /etc/init.d/docker statu ...
Vagrant-虚拟化开发环境构建工具
Vagrant是一个基于Ruby编写的工具,用于创建和部署虚拟化开发环境。它使用Oracle开源的VirtualBox虚拟化系统,通过Chef创建自动化虚拟环境。具备功能特性:
支持快速新建虚拟机
支持快速设置端口转发
支持自定义镜像打包(原始镜像方式、增量补丁方式)
基本上日常能用到的基础配置都能快速设置
支持开机启动自动运行命令
可以自己写扩展
我是在搞k8s环境的时候接触到这个工具的,下面讲一下vagrant批量创建虚拟机以及ssh配置的流程。
编写Vagrantfile关于virtualbox和vagrant的安装,基本是傻瓜式的,这里不赘述。我们先在终端敲一句vagrant init,在当前目录下会出现一个具备基础配置的Vagrantfile,内容如下:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970# -*- mode: ruby -*-# vi: se ...
Python多版本管理神器-pyenv
最近着手学习Python,但是发现网上那些demo的Python版本2.x和3.x都有,虽然已经安装了多版本共存,但对于强迫症的我来说,用python2和python3命令来区分版本,感觉是真的别扭,为此专门找来了这款版本管理工具pyenv。
一、安装1、windows安装1)下载pyenv-win
2)在任意安装目录下创建.pyenv文件夹
3)将zip压缩包解压至.pyenv文件夹中
4)在系统环境变量path里添加.pyenv文件夹下的bin和shims目录
5)命令行输入pyenv --version测试一下是否安装成功
2、Linux安装/MacOS安装1)安装pyenv
12git clone https://github.com/pyenv/pyenv.git ~/.pyenvcd ~/.pyenv && src/configure && make -C src
MacOS还可以可通过Homebrew安装:
12brew updatebrew install pyenv
2)配置环境变量
123echo 'expor ...
Hello World
我的个人博客开通了