草庐IT

pattern-lock

全部标签

design-patterns - 断路器设计模式 sleep vs time.AfterFunc

我正在尝试创建一个Circuitbreakerpattern,我想执行命令exec.Command如果失败,在X定义的时间内重试,出于测试目的,我正在做这样的事情来测试time.AfterFunc:packagemainimport("fmt""time")funcmyFunc()error{fori:=1;itime.AfterFunc适用于上面的代码,但不适用于下面的示例,我不得不将其替换为sleep以实现预期的结果:packagemainimport("fmt""os/exec""time")funcExec(donechan./sleep的内容:#!/bin/shsleep3为

design-patterns - 函数中的 GoLang 实时连接

我对golang中更好的代码使用有疑问。在几个包中使用实时连接(如数据库)的最佳情况是什么。最好像这样添加数据库连接1.func(databaseDB)getRows(){}或者2.funcgetRows(database*DB){}或者3.funcgetRows(){initdatabaseconnection...}对于第一种用法,我们需要为数据库创建本地结构typeDBstruct{connection}在不同的包中,我需要通过在每个包中创建本地结构来移动数据库连接,或者当某些包不使用数据库连接但使用导入包时?如何发送一个配置并只创建一个连接?单例是个好主意?对于这种情况的使用,

regex - 去正则表达式 : how I can replace named groups by concrete values in source pattern?

也许,你可以帮我。例如,我有像(?P\w+)(?P\w+)这样的正则表达式.我如何使用map[string]string{"name":"Alice","surname":"Cool"}替换组以获得字符串AliceCool?这可能吗?谢谢。 最佳答案 好的,我找到了制作方法。希望它会对某人有所帮助。https://play.golang.org/p/Xz9PtE_bIt 关于regex-去正则表达式:howIcanreplacenamedgroupsbyconcretevaluesins

带有 journal_mode=WAL 的 go-sqlite3 给出 'database is locked' 错误

在go中,我使用mattn/go-sqlite3模块打开了一个sqlite3数据库。我在使用PRAGMAjournal_mode=WAL打开后立即将数据库日志记录模式设置为WAL。但是,如果我在第一个进程运行时尝试从第二个进程打开数据库,则第二个进程无法打开它,而是收到“数据库已锁定”错误。即使我没有执行任何交易,也会发生这种情况。我使用的连接字符串是:"file:mydbfile.db?cache=shared&mode=rwc"(我打算回答我自己的问题,因为调试了很长时间) 最佳答案 如果你想启用journal_mode=WAL

postgresql - 使用 Postgres 和 GO 强制执行 "lock"

我是Postgres的新手,所以这可能是显而易见的(或者非常困难,我不确定)。我想强制一个表或行一次至少“锁定”几秒钟。这将导致第二个操作“等待”。我正在使用golang和“github.com/lib/pq”来与数据库交互。我需要这个的原因是因为我正在做一个监控postgresql的项目。谢谢你的帮助。 最佳答案 您还可以使用select...forupdate来锁定一行或多行事务的长度。基本上,它就像:begin;select*fromfoowherequatloos=100forupdate;updatefoosetfeens

go - 检测哪个 Lock() 导致程序挂起?

在我的go程序中,执行被挂了,因为它在等待Lock()。go中是否有我可以用来找到它陷入僵局的确切行的工具? 最佳答案 您可以使用pprof获取堆栈跟踪.如果您遵循包中的示例代码,urlhttp://localhost:6060/debug/pprof/goroutine?debug=1将为您提供每个正在运行的goroutine的堆栈跟踪。 关于go-检测哪个Lock()导致程序挂起?,我们在StackOverflow上找到一个类似的问题: https://s

go - antlr4的golang visitor pattern是否处于可用状态?

我没有看到有效的示例,而且我看到一些拉取请求仍处于打开状态。我想避免沿着花园小径走。https://github.com/antlr/antlr4/pull/1807https://github.com/antlr/antlr4/issues/1843还有一些拉取请求让我觉得golang目标可能已经死了。https://github.com/antlr/antlr4/issues/2152所以我真正想问的是我应该避开golang,还是文档就在谷歌看不到的地方:-) 最佳答案 致那些没有点击问题的人。访问者模式是可用的。我写了一个示例

design-patterns - Web 应用程序的 Go Lang 文件夹结构

如您所知,Go是OOPimo的一种现代方法,它具有一些出色的功能,例如强制您使用组合而不是继承。我只是想了解如何根据文件夹和包结构设计编写良好的go代码。我只是想知道这种类似React的方法是否可行(如下所示-将应用程序作为组件划分到不同的包中)?或者你能给我一个例子、链接、关于网络api的文件夹/打包的良好结构的想法。Go将只是我的开源项目后台的一个api,在客户端,我计划有一个单页的React应用顺便说一下。非常感谢, 最佳答案 标准Go项目布局GitHub上有一个Repo,有很多星标(截至撰写时为22k)这种方法实际上非常完整

java - 用于正则表达式验证的 JAX-WS @Pattern 注释

我正在使用xjc从我的XML模式为JAX-WS网络服务生成java类。在我的模式中,我为逗号分隔的整数列表指定了一个类型:当这种类型的元素被xjc转换为java类时,它们变成了String对象(正如它们应该的那样),但是正则表达式验证丢失了。我在某处读到有关应该用于正则表达式的@Pattern注释。为什么xjc不使用这个注解,我如何修复它以在Java中执行正则表达式验证?谢谢你的帮助 最佳答案 我自己没有尝试对xjc使用模式限制。基于以下帖子,我相信xjc不会在本地创建@Pattern限制,但是一个有进取心的人已经在java.net

xml - xslt 损坏 : pattern does not match

我正在尝试使用以下xslt查询xml文件:这是xml文件的内容:2.1BizAgiProcessModeler.2010-04-24T10:49:45.3442528+02:001pricesettingCO尽管是简单的模式,但foreach不起作用。Package/Participants/Participant有什么问题?我在这里想念什么?关于命名空间,有什么我不明白的吗?非常感谢! 最佳答案 您的代码中存在许多问题:XML文档的元素位于默认namespace中,但XSLT代码中的匹配模式(和选择表达式)使用“无namespac