草庐IT

结构化并发

全部标签

ruby-on-rails - Ruby:结构与初始化

使用Struct与定义initialize方法相比有哪些优点和缺点?我已经可以看到它涉及更少的代码并且在缺少参数时不引发:使用结构:classFruitFruit.new.name=>nil>Fruit.new('apple').name=>"apple"使用初始化:classFruitattr_accessor:namedefinitialize(name)@name=nameendend>Fruit.new.nameArgumentError:wrongnumberofarguments(0for1)>Fruit.new('apple').name=>"apple"你有什么想法?您

ruby - 所有 ruby​​ 文件都应该有一个与文件夹结构相匹配的模块结构吗?

是否所有文件都在具有文件夹结构(类似于java包)的模块中的ruby​​约定?例如,如果我的文件结构如下所示库/人/工具此处的文件是否具有如下模块结构:modulePeoplemoduleUtils#somefunctionalityforPeople::Utilsendend我问的原因是因为我一直在阅读一些Rails代码,并且似乎有几个文件在这样的文件结构中,但没有任何模块声明。我猜这是为了让您可以使用效用函数而不必包含People::Utils。ruby是否有关于何时应该使用模块以及何时不应该使用模块的约定? 最佳答案 这是Ra

ruby-on-rails - 使用 Rails 4 和结构化日志记录,如何将请求 ID 字段添加到日志中?

我正在向Rails4应用程序添加结构化日志记录。使用lograge和logstash-logger如thisarticle中所述,我的东西大部分都在工作。我在向日志添加请求ID时遇到问题。我发现最接近的是将其添加到config/${ENV}.rb:config.log_tags=[:uuid]但这会将请求ID添加到标签列表中,而不是将其添加为命名字段。{"tags":["da76b4be-01ae-4cc4-8d3c-87062ea02cfe"],"host":"services","severity":"DEBUG","@version":"1","@timestamp":"2016

ruby - 如何限制同一 Ruby 脚本的并发实例?

在Ruby1.9.x中,不允许我的Ruby脚本再次运行或等待前一个实例完成的简单方法是什么?**我希望避免困惑的文件锁定或进程表检查。有没有类似globalmutex的东西或信号量已经在核心?我研究了原生Mutex但这似乎只适用于一个Ruby进程内的线程,而不适用于不同进程。**稍后我可能会添加超时功能,或者限制为N个实例,或者希望使用多个全局锁(每个系统范围的资源一个,最多只能有一个实例)。 最佳答案 这段非常短的代码将卡住在原地,直到/tmp中以您的脚本命名的锁定文件被独占锁定:File.open("/tmp/#{File.ba

ruby - 了解赛璐珞并发

以下是我的赛璐珞代码。client1.rb2个客户之一。(我将其命名为客户端1)client2.rb2个客户中的第2个。(命名为客户端2)备注:上述2个客户端之间的唯一区别是传递给服务器的文本。即('client-1'和'client-2'分别)针对以下2个服务器(一次一个)测试这2个客户端(通过并排运行)。我发现非常奇怪的结果。server1.rb(取自celluloid-zmq的README.md的基本示例)将其用作上述2个客户端的示例服务器导致任务的并行执行。输出rubyserver1.rbReceivedat04:59:39PMandmessageisclient-1Going

ruby - HAML - if/elsif 结构

我的HAML代码中需要这种构造:-ifsomething1%div.a-elsifsomething2%div.b-elsifsomething3%div.c-else%div.d%divanothercontent我希望我得到类似的东西:anothercontent但事实上我得到了anothercontent如果需要,我必须如何更新我的代码:另一个内容? 最佳答案 我认为您应该创建一个辅助方法:%div{:class=>helper_method(useful_parameters)}实现此目的的真正难看的方法是使用三元运算符(c

ruby-on-rails - 什么测试工具/框架可以测试 Rails 应用程序中的并发请求?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion如何在N个并发用户的情况下测试我的Rails应用程序?这些模拟用户会做一些上传/下载文件等操作是否有支持此功能的任何框架或免费工具?

ruby-on-rails - 是否有 Ruby 数据库迁移 gem,可帮助您将内容从旧结构移动到新结构?

是否有任何Rubygem/库可以帮助您从旧的数据库结构迁移到新的结构?ActiveRecord迁移在跟踪新数据库结构方面做得很好,但我想知道是否有什么可以帮助您将整个遗留数据库迁移到新结构:transfer_from(:source_table=>'person',:destination_table=>'dudes_and_dudets')dofrom:name,:to=>:full_namefrom:dob,:to=>:agedo|dob|#thiswould,forexample,loadtheresult(Date.today-dob)/60/60/24/365#ofthebl

ruby - 复杂的graphviz树结构

我正在尝试使用graphviz创建树结构。我愿意手动编写graphviz代码或使用ruby​​-graphvizgemforruby​​。鉴于下图,任何人都可以提供有关必要代码的任何见解吗?忽略线条不是直的……当graphviz构建图形时它们应该是。当线相交时,我也愿意接受点/点。我玩过ruby​​-graphviz和家谱类......这让我了解了其中的一部分,但我真的需要所有的线都是直的并且以直角相交并且开箱即用代码似乎没有这样做。代码应该足够通用,以允许“C”框也有子项,并允许“A”下有更多的子项。颜色无关紧要...示例可以排除任何着色。http://docs.google.com

ruby - 在 Sinatra 之上构建 MVC 结构

我正在学习Sinatra,我想知道是否有人知道使用Sinatra为项目制作MVC结构的好方法。我有一些想法,但对我来说它们似乎太麻烦了。 最佳答案 Sinatra已经是“VC”——您的View与您的路由(Controller)分离。如果愿意,您可以选择将其分成多个文件;有关更多信息,请参阅此答案(我的):UsingSinatraforlargerprojectsviamultiplefiles要添加“M”(模型),请选择一个数据库框架。有些人喜欢ActiveRecord.有些人喜欢DataMapper.还有更多可供您选择。我个人非常