摘要:
需求:.NET程序需要监控一个FTP上的文件变化并进行操作,在linux上使用原生目录时,不管怎么切换后台运行,总是会在一段时间运行后死掉。 方案:远程也不好debug,想了一下,干脆直接使用docker-compose运行,设置死了自动重启(restart=always)就完事了。 由于FTP与. 阅读全文
摘要:
在有一个陈旧的系统的情况下,如果升级API可以优先使用微服务的形式,将数据库进行独立拆分,将原来的数据库原原本本地固定在旧系统中,然后在独立的微服务中运行与部署新系统。 如果原有的数据需要在更换结构的前提下在不同的版本的系统下进行共享,那可以使用数据库的卷影复制等功能。如果两个数据表的结构不完全一样 阅读全文
摘要:
System.IO命名空间下面有一个FileSystemWatcher,这个东西可以实现文件变动的提醒。需要监控文件夹变化(比如FTP服务器)的情形非常适用。 需要监控文件新建时,我们可以这么写: _fileSystemWatcher.Path = path; _fileSystemWatcher. 阅读全文
摘要:
使用Podman最好的地方就是支持rootless,也就是说用户不需要为root权限即可进行容器的管理操作。因此现在在CentOS 8及以后的版本中,默认使用Podman替代Docker,如果使用docker命令,会重定向到podman。 rootless很好,但是也带来了一些问题: 多余的提示 运 阅读全文
摘要:
开发人员在开发代码的时候,经常会使用到Debug、Release、Development、Production等几个概念,虽然有些地方在功能上最终殊途同归,但是还是有非常大的区别。 首先需要搞清楚,Debug、Release都属于编译配置,而Development、Production则属于环境配置 阅读全文
摘要:
使用EF Core的Code First,在设计阶段,直接使用Database.EnsureCreated()和EnsureDeleted()可以快速删除、更新最新的数据结构。由于没有什么数据,删除的风险非常低。但是对于已经投入生产的数据库,这个方法就绝对不可行了。 考虑以下场景: 项目已经上线,一 阅读全文
摘要:
一直使用Postgresql数据库,有一张表是这样的: DROP TABLE IF EXISTS "public"."devicedata"; CREATE TABLE "public"."devicedata" ( "Id" varchar(200) COLLATE "pg_catalog"."d 阅读全文
摘要:
在进行软件docker化的过程时,很大的一个阻碍就是软件与各种外围硬件设备的交互,网口通信的设备能够很容易地接入容器,但是串口设备则要复杂一些。本文讨论在windows和linux下docker容器使用串口的方法。 由于wsl2也在一直更新,不排除未来有可能直接支持wsl的情况 方案 docker 阅读全文
摘要:
Content 在用Docker进行持久化的存储的时候,有两种方式: 使用数据卷(volume) -v 容器绝对路径 或者 -v 已经创建的volume名称:容器绝对路径 使用挂载点(共享宿主目录,bind mount) -v 宿主绝对路径:容器绝对路径 由于两种方法都可以使用-v和--mount参 阅读全文
摘要:
Rocky Linux 9,运行 dnf install -y dotnet-sdk-6.0 一切正常,运行起来非常顺利,安装完毕。但是非常诡异,运行 dotnet --list-sdks dotnet --list-rumtimes 第一个啥也没有,第二个能够显示出dotnet runtime已经 阅读全文