首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

protobuf-net动态Message实现

这个项目起源于我们之前哪个项目,客户端想要在UnityC#里动态加载配置,而protobuf-net一方面大量使用反射而性能不太行,另一方面使用时候得生成C#代码才行。...客户端原来做法是把消息扁平化了,使用protobuf-net得底层读写接口直接操作基本数据类型。这就失去了结构化带来一系列好处。...所以我就干脆也使用protobuf-net底层读写接口做了现在DynamicMessage支持,API设计是结合pbc和protobuf官方API流程。...这两个我之前也都手写过,其中zigzag编码原理用于实现以前内存混淆整数,而varint用于libatbus流通道传输一个message开始用于表示整个message长度header(详见:...项目在 https://github.com/xresloader/DynamicMessage-net 里面的ExcelConfig目录是用于xresloader读表和建立索引protobuf-net

1.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

Docker部署Gunicorn项目

坑一:Docker run 之后没反应 什么都没有 日志都没有 检查Gunicorn配置文件,原来使用了daemon = True参数,这个参数是将Guncorn放到后台运行,所以消失了并且没有任何输出...解决方案:屏蔽daemon参数 坑二:Gunicorn没有Flask日志输出  启动后只有Gunicorn日志,而没有Flask日志 解决方案:在Flask里面添加 if __name__!...geventwebsocket.gunicorn.workers.GeventWebSocketWorker 没有Flask访问日志 解决方案:不知道怎么解决,将worker_class换为gevent...可以输出访问日志,但是并没有解决根本问题 坑四:Gunicorn启动参数不生效 原因:Gunicorn默认配置文件名称是gunicorn.conf.py,如果这里面写了内容,直接用参数运行是怎么都不会生效...删除默认配置文件gunicorn.conf.py,或者使用gunicorn.conf.py去配置

2.4K00

使用 Source Generator 在编译你 .NET 项目自动生成代码

: 开始编写一个基本代码生成器 使用代码生成器生成需要代码 将代码生成器加入到现有的 NuGet 包中 调试代码生成器 一个基本代码生成器 创建一个项目,例如 dotnetCampus.Ipc.Analyzers...而我在 dotnetCampus.Ipc 库中编写生成代码会稍微复杂一点,会根据项目中标记了 IpcPublic 代码动态生成对这个类代理访问和对接代码,使用是 Roslyn 进行语义分析。...这样,编译此 dotnetCampus.Ipc.Test 项目,就会触发选择调试器界面,你就能调试你代码生成器了。...使用这种方式引用,相比于 NuGet 包引用来说,项目的分析器列表里无法看到生成代码。...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后作品务必以相同许可发布。

45330

业务线上存在五个项目并行开发情况,MQ使用状况

业务线上存在五个项目并行开发情况,当时对于MQ使用状况如下: Rocket:核心业务3个项目,版本有差异; Kafka:数据权重偏高,1个项目采用; Redis:基于Python连接,队列消息模式...; 刚开始因为用不多,整体还在可控范围内,后续随着业务持续迭代,项目间出现需要通信情况,就开始混乱难以维护,然后就是被迫开始重构,统一消息组件。...二次选型 基于业务综合考量,对现有几个项目进行MQ重新设计,形成整体架构思路如下: MQ组件选择:采用RocketMQ; 换掉Redis组件队列模式; 将基于Python系统改Java语言;...提供消息生产与消费两个服务; MQ功能由上述服务进行统一维护; 这里在核心业务线上没有改变组件选择,换掉kafka一个原因是涉及大量结算业务,Redis队列模式弃用,基于Python管理系统功能不多...,这里只是顺手换掉,统一业务线编程语言。

32220

使用默认端口mongo几个坑(使用巡风

,为了方便后续开发,需要使用pycharm集成mongo可视化插件, 这其中我们遇到了一些"不使用默认端口坑"(大佬一笑而过。。。)...指定使用端口也没用 ? 2、pycharmmongo插件无法连接,mechanism尝试default,报错如下, ?...解决: 1、首先搞清 mongo与mongod 要先启动mongod(有d一般是守护进程,或服务本身),再mongo(连接服务) 2、发现巡风数据库xunfeng配置,指定了端口 65521,而不是默认...27017; 而巡风配置文件Config.py里会写明,所以用巡风脚本Run.sh启动,完全没有问题; ?...成功 这里记着要用使修改后conf生效(但为啥:每次都要指定,或用配置文件启动 ),这样才会连接成功; 总结: 其实就是数据库服务启动问题, 1、没有启动服务 2、在没有使用默认端口情况下没有指定使用端口

2.3K10

记录在TS项目使用eslint规范代码遇到问题

报错内容:as语句无法识别,导致(window as any).hello这种语句报错 问题原因:eslint 在检测代码,会先将代码转换为 AST 对象 而这个转换过程需要指定解析器才能完成,eslint...默认使用是babel解析器,而babel解析器里没有包含ts语法内容解析器,所以,我们需要使用ts为eslint开发解析器 解决方法: 确保安装了eslint以及ts eslint解析器 npm...在执行 no-unused-vars 规则检测时,使用是默认检测规则,也就是 js 变量检测规则 解决方法:禁用默认no-unused-vars改为 @typescript-eslint/no-unused-vars...这个规则会排除interface或者type类型声明中无函数体函数检测,更改后rules内容 rules: { 'react/jsx-filename-extension': [...}], // 不能有声明后未被使用变量或参数 'no-unused-vars': 'off', '@typescript-eslint/no-unused-vars': ['error

40610

详解Python项目开发自定义模块中对象导入和使用

背景:1)任何一个Python程序文件既可以直接执行,也可以作为模块导入再使用其中对象;2)对于大型系统开发,一般不会把所有代码放到单个文件中,而是根据功能将其分类并分散多个模块中,在编写小型项目最好也能养成这样好习惯...本文介绍Python自定义模块中对象导入和使用。...继续执行下面的代码: >>> import child.add >>> child.add.add(3,5) 8 自定义模块中对象成功被导入并能够正常使用,也就是说,如果要使用对象在子模块中,应该单独使用...或者使用下面的方法: >>> from child import add >>> add.add(3,5) 8 接下来在IDLE中单击菜单“Restart Shell”恢复初始状态,然后执行下面的代码:...原因在于,如果文件夹作为包来使用,并且其中包含__init__.py文件,__init__.py文件中特殊列表成员__all__用来指定from ... import *哪些子模块或对象会被自动导入

3K50

面试如何介绍自己项目经验?

在面试,经过寒暄后,一般面试官会让介绍项目经验 。常见问法是,说下你最近(或最拿得出手)一个项目。...面试7份靠能力,3份靠技能,而刚开始介绍项目又是技能中重中之重,所以本文将从“介绍”和“引导”两大层面告诉大家如何准备面试项目介绍。 好了,如下是正文内容。...如果没商业项目经验,除非是校招,否则就直接结束面试 描述项目,一些关键要素(比如公司、时间、所用技术等)和简历上不匹配 我们会深究这个不一致情况,如果是简历造假,那么可能直接中断面试,如果真的是笔误...最后等项目上线后,我们会部署监控系统,一旦发现内存和数据库问题,我们会第一间解决。...所以建议,你可以适当夸张,但别过分,比如你在项目里没搭建框架但平时学习搭建过,你可以写“XX项目的框架是你搭建”,但你不能说你是一个架构师,非常了解项目的底层。

98430

面试,怎么介绍自己做过项目

目标客户--解释项目为谁而做或者谁会从其应用中受益。 需求或机会--详细阐明客户必须要解决问题或需求。 主要优势--解释一下产品核心竞争力 主要竞争产品--解释为什么我们没用其他现成产品。...主要区别--区分并解释我们产品何不同,与竞争产品相比何优势。 2、根据项目提问问题 项目的团队人员架构,比如有多少开发,多少测试? 你在项目中承担角色?干了哪些工作? 测试了多长时间?...项目周期多久?开发和测试时间安排? 怎么保证测试覆盖率? 项目的需求文档有五百页,你打算怎么看? 项目的需求文档一直没有更新甚至没有需求文档,你打算怎么开展测试?...举一个项目的具体功能点,提问有哪些测试点 项目测试重点,结合具体例子 项目典型bug,一天能发现多少bug,一共发现多少bug? 在项目中遇到过什么挫折,或者让自己提升比较大事情?...你是怎么开展工作项目结束后做过什么总结? 项目中出现什么事故,后续你们怎么改进? 你做最长一个项目是什么?在这期间你遇到了什么问题让你最头疼?你如何解决它?

3.3K11

compile 只保存项目文件

Emacs 中有一个非常好用 compile 模块,可以非常方便编译代码、运行测试等。...不熟悉读者可以参考: Compiling and running scripts in Emacs - Mastering Emacs[1] 。...有一点比较烦人是, 每次执行 compile ,如果有已经修改,但是还未保存文件,它都会在 minibuffer 中提示。 这样做初衷是可以理解,如果修改文件没有保存,编译会用老文件。...问题是,所有未保存文件都会提示,这就有些过分了,最好是能控制在项目内,之外文件就不要再提示了。...() "检查当前 buffer 是否属于当前项目,如果当前目录不属于任何项目,直接返回 `nil'" (when-let* ((pr (project-current))

34810

使用 Node 开发服务器项目如何高效地打日志?

CronLog: 记录定时任务执行时间以及是否成功 关键业务逻辑 日志基本字段 对于所有的日志,都会有一些共用基本字段,如在那台服务器,在那个点产生日志 app 「即当前项目的命名」,在生产环境有可能多个项目的日志聚合在一起...现已有相当多公司生产环境应用使用 kubernetes 进行编排,而在 k8s 中每个 POD hostname 如下所示,因此很容易定位到 Deployment: 哪一个应用/项目 ReplicaSet...当用户未登录,以 -1 替代,方便索引。...只打印部分字段 请求日志: AccessLog 「AccessLog 几乎是一个后端项目中最重要日志」,在传统 Node 项目中常用 morgan[4],但是它对机器读并不是很友好。...,即可通过 requestId 查得每条 API 对应查库次数,方便定位性能问题 使用 duration 字段记录该查询执行时间,可过滤 1s 以上数据库操作,方便发现性能问题 使用 tableNames

1.3K20

老问题了:idea中使用maven archetype新建项目卡住.md

创建项目,熟悉吧,但是,这么多年下来,因为idea换了版本,电脑换了等等,我还是时不时遇到根据maven archetype新建maven项目卡住。...我看了下,这个文件确实大,14M左右,而且是从maven官方仓库那小水管下载,确实要卡很久,文件是干啥呢,catalog表示目录,合起来意思就是项目模版目录,比如我们常用quickstart,只是其中一个...https://maven.apache.org/archetype/maven-archetype-plugin/ image-20230818230444710 我也是才知道,还可以根据现在已有的项目来生成模版...,感觉还是不错,后面打算研究下,毕竟公司内项目一多,在项目间需要复用东西就越来越多,搞个模版工程还是不错。...该插件goal:generate 我们上面使用就是该插件generate 目标: https://maven.apache.org/archetype/maven-archetype-plugin

97820

Python+fiddler模拟Protobuf数据容错

前言 在客户端和服务端数据传输交换中经常使用技术是 JSON 或 XML,而小编最近在项目中接触到了一种新数据传输框架——Protobuf,接下来我们就正式学习一下吧。...优点 (1)更小——序列化后,数据大小可缩小约3倍; (2)更高效——序列化速度更快,比XML和JSON快20-100倍,体积缩小后,传输,带宽也会优化; (3)更灵活——protoc编译器,自动进行序列化和反序列化...protobuf-net ProtobufC#依赖库和proto文件转换工具,将protobuf-net文件夹放到C:\Progarm Files(X86) 目录下; ?...使用方法 上述步骤完成后,我们打开fiddler,就可以看到在Inspectors下出现Protobuf字段了,接下来我们就可以触发并查看数据流为Protobuf请求了,不会再是一堆二进制格式数据了;...文件(服务端响应protobuf格式数据)转换为python文件放到fiddler插件目录下,作为数据源; (1)将proto文件放到C:\Program Files (x86)\protobuf-net

1.9K50

使用Power Query最佳做

例如,在连接到SQL Server数据库使用 SQL Server 连接器而不是 ODBC 连接器不仅为你提供了更好获取数据体验,而且SQL Server连接器还提供可改善体验和性能功能,例如查询折叠...这也是筛选出与案例无关任何数据最佳做法。 这样,你便能更好地关注手头任务,只需显示数据预览部分相关数据。可以使用自动筛选菜单来显示列中找到不同列表,以选择要保留或筛选掉值。...还可以使用搜索栏来帮助查找列中值。还可以利用特定于类型筛选器,例如日期、日期时间甚至日期时区列 上 一个筛选器。...如果可能,请先执行此类流式处理操作,最后执行任何成本更高操作。 这有助于最大程度地减少每次向查询添加新步骤等待预览呈现时间。...使用正确数据类型Power Query中一些功能与所选列数据类型相关。 例如,选择日期列,“添加列”菜单中“日期和时间”列组下可用选项将可用。 但如果列没有数据类型集,则这些选项将灰显。

3.5K10
领券