20210520第三天

20210520第三天

一、DCache 使用

taf 管理平台初始化
  • DCache 模块 => 服务创建 => 创建模块
    选择应用和填写模块名称(模块名称以应用名称开头)
    填写数据结构及DB信息
    选择 Cache 服务 IP,输入 DbAccess Mysql 实例信息
    确认信息建库,确认安装。
  • 服务管理 => 发布管理
    发布 DBAccess
使用

安装

$ npm install @taf/taf-dcache-helper

初始化和调用

const DCache = require("@taf/taf-dcache-helper");
const TafStream = require("@taf/taf-stream");

const cacheHelper = new DCache({
  DCacheServerTarget: "DCache.TestProxyServer.ProxyObj@tcp -h 172.16.8.147 -t 60000 -p 28711",
  moduleName: "TestHelloDcacheDemo"
});
/**
* 设置key-value
* @param keyItem, key的值
* @param value, 要设置的数据
* @param ver,数据版本(1)
* @param dirty,是否脏数据
* @param expireTimeSecond,设置数据过期的绝对时间,以秒为单位。CacheServer将根据这个时间自动淘汰过期数据。如果数据没有过期的概念,请将此参数设为0
* @return int,  返回码
*/
cacheHelper.setStringEx('fixed_key_ex2', 'fixed_value_ex2', 1, true, 600).then(function(ret) {
if (ret.iRet === 0) {
  console.log('setStringEx success', ret);
} else {
  console.log('setStringEx error', ret);
}
}, function(ret) {
console.log('setStringEx error', ret);
}).done();


/**
* 根据key查询value
* @param keyItem, key的值
* @param value, 查询结构,返回数据
*/
cacheHelper.getStringWithVer('fixed_key').then(function(ret) {
if (ret.iRet === 0) {
  const val = ret.data.value;
  const ver = ret.data.ver;
  console.log('getStringWithVer success', val, ver);
} else {
  console.log('getStringWithVer error', ret);
}
}, function(ret) {
console.log('getStringWithVer error', ret);
}).done();

二、构建 taf 服务

安装依赖

npm install @taf/taf-rpc
npm install nodemon -D
  1. 编写 jce 文件( jce 的模块名即为应用名)
    通过在服务器上的命令或者脚手架的命令生成 xxx.js 以及 xxxImp.js 文件供服务端使用 和 xxxProxy.js 文件供客户端使用。其中 Imp 结尾的文件是实现接口的文件。在项目中有用于开启服务 server.js 文件和 用于客户端的 client.js 文件。
// server.js
const TAF = require('@taf/taf-rpc');
const LXSC = require('./HelloImp').LXSC;
const server = new TAF.server();

server.initialize(process.env.TAF_CONFIG || './local.conf', function (server) {
  const servantName = server.Application + '.' + server.ServerName + '.HelloObj';
  console.log(servantName);
  server.addServant(LXSC.HelloImp, servantName);
});

server.start();
// client.js
const TAF = require('@taf/taf-rpc').Communicator.New();
const LXSC = require('./HelloProxy').LXSC;

let servant = 'LXSC.HelloServer.HelloObj';
if (!process.env.TAF_CONFIG) {
  servant += '@tcp -h 127.0.0.1 -p 14001 -t 60000';
}

const prx = TAF.stringToProxy(LXSC.HelloProxy, servant);

const stReq = new LXSC.HelloWorldReq();
stReq.readFromObject(
  {
    data: 'Hello World',
  }
);
prx.helloWorld(stReq).then(function (ret) {
  console.log('### helloWorld ok ###', ret.response.arguments.stRsp.toObject());
}, function (ret) {
  console.log('### helloWorld error ###', ret.response);
});
// imp.js
var LXSC = require('./Hello.js').LXSC;
module.exports.LXSC = LXSC;

LXSC.HelloImp.prototype.helloWorld = function (current, stReq, stRsp) {
    const req = stReq.toObject();
    stRsp.readFromObject({
        iRet: 0,
        message: req.data,
    });
    current.sendResponse(0, stRsp);
}
  1. 打包发布服务。

三、Gitlab-CI

Gitlab-CI 是一款用于持续集成、持续交付的工具。

CI 即持续集成,当提交代码后自动检测、构建和进行单元测试的过程,目标是保证代码是稳妥的,可以运行。

CD 即持续交付,整个流程链(管道)自动检测源代码的改变,并通过构建、测试、打包和相关操作运行他们以生成可部署的版本。

Gitlab-CI 的 CI/CD 相对比较简单,在文件的根目录有一个 .gitlab-ci.yml 文件,随着文件的提交,gitlab 会进行执行该文件,从而实现 CI/CD。

  • 如何使用 gitlab 的 gitlab-ci:
    在公司的 gitlab 下的 CI/CD 模块,使用自带的Runner 来开启。
  • .gitlab-ci.yml 文件的写法
关键字含义
before_script和after_scriptbefore_script关键字定义了一组在每个任务开始之前需要执行的命令,after_script则相反。
stages指定一系列 JOB(任务) 执行的顺序,如果两个任务的 stages 值相同,那么这两个任务同时执行。上一个 stages 的任务成功执行之后才会执行下一个任务,否则不执行。
only / except控制任务的触发条件,他们里面包含了一些子关键字(或者叫策略),only 关键字的默认策略是[‘branches’, ‘tags’],即你提交了一个分支或者打了标签,就会触发。
tags指定哪台机器去执行我们的任务(与上面的 only/except 不同)
whenstages关键字可以控制每个任务的执行顺序,且后一个stage会等待前一个stage执行成功后才会执行,那如果我们想要达到前一个stage失败了,后面的stage仍然能够执行的效果可以使用 when 关键字。on_success:只有前面stages的所有工作成功时才执行,这是默认值。on_failure:当前面stages中任意一个jobs失败后执行。always:无论前面stages中jobs状态如何都执行。manual:手动执行。delayed:延迟执行
cache指定需要缓存的文件夹或者文件
artifacts与上面的缓存差不多,这个可以下载缓存后的文件。

例图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值