Tag: java

Elasticsearch日志文件巨大的性能降级

我正在使用RoR开发一个名为searchkick的应用程序和一个gem,这个gem在内部使用elasticsearch。 一切正常,但在制作过程中,我们遇到了一个奇怪的问题,一段时间后网站出现故障。 我们发现的原因是服务器上的内存被过度使用了。 我们删除了前一周的一些elasticsearch日志文件,发现内存使用率从92%减少到47%。 我们使用滚动日志记录,每天备份日志。 现在,我们面临的问题是,前一天只有1个日志文件,内存越来越高。 日志文件占用了大量空间,即使是当前的文件需要4GB! 我怎么能防止这种情况? 消息几乎是警告级别。 [00:14:11,744][WARN ][cluster.action.shard ] [Abdul Alhazred] [?][0] sending failed shard for [?][0], node[V52W2IH5R3SwhZ0mTFjodg], [P], s[INITIALIZING], indexUUID [4fhSWoV8RbGLj5jo8PVoxQ], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[?][0] failed recovery]; nested: EngineCreationFailureException[[?][0] failed to create engine]; nested: LockReleaseFailedException[Cannot forcefully unlock a NativeFSLock which is held by another indexer component: /usr/lib64/elasticsearch-1.1.0/data/elasticsearch/nodes/0/indices/?/0/index/write.lock]; ]] […]

使用JRuby将Ruby on Rails应用程序的所有.rb文件编译为.class,将其打包成.war并部署到Java appserver中

是否可以使用JRuby将Ruby on Rails的所有.rb源文件文件(包括配置源文件文件)编译为.class文件,将其打包成.war文件并部署到JBoss或其他Java应用程序服务器?

Rails 4:Solr抛出JavaMissing错误,但安装了Java

我重启了我的Rails 4 VPS,Solr显然也关机了。 我现在正在尝试启动Solr但是当我运行以下RAILS_ENV=production bundle exec rake sunspot:solr:start我收到以下错误消息: rake aborted! Sunspot::Solr::Server::JavaMissing: You need a Java Runtime Environment to run the Solr server /home/dani/.rvm/gems/ruby-2.1.2/gems/sunspot_solr-2.1.1/lib/sunspot/solr/server.rb:203:in `ensure_java_installed’ /home/dani/.rvm/gems/ruby-2.1.2/gems/sunspot_solr-2.1.1/lib/sunspot/solr/server.rb:27:in `initialize’ /home/dani/.rvm/gems/ruby-2.1.2/gems/sunspot_solr-2.1.1/lib/sunspot/solr/tasks.rb:37:in `new’ /home/dani/.rvm/gems/ruby-2.1.2/gems/sunspot_solr-2.1.1/lib/sunspot/solr/tasks.rb:37:in `server’ /home/dani/.rvm/gems/ruby-2.1.2/gems/sunspot_solr-2.1.1/lib/sunspot/solr/tasks.rb:5:in `block (3 levels) in ‘ /home/dani/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in `eval’ /home/dani/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in `’ Tasks: TOP => sunspot:solr:start (See full trace by running task with –trace) 奇怪的是安装了Java: $ echo […]

jruby on rails – 使用star server(rails s)命令时出错

当抛出错误时 rails s 命令用于我的项目的上下文中。 以下是我的应用程序设置: JRuby(1.7.0.preview2) Rails(3.2.8) IBM DB2 Express C(1.01) active-record-jdbc-adapter(1.2.2) 这是java错误: # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_PRIV_INSTRUCTION (0xc0000096) at pc=0x0155b803, pid=8552, tid=9692 # # JRE version: 7.0_06-b24 # Java VM: Java HotSpot(TM) Client VM (23.2-b09 mixed mode, sharing windows-x86 ) # Problematic frame: […]

厌倦了非语义测试以弥补动态类型 – 建议?

在我开始学习计算机工程之前,我曾经在Rails(之前的PHP)中做过很多Web编程。 从那时起,我在C中完成了大量的学习工作,并在Objective-C(Mac的东西)中完成了一些个人工作。 我学会了喜欢静态打字。 但现在我不得不做一些专业的网页开发(自由职业),并再次获得了Rails。 我发现编写非语义类型检查测试真的很烦人。 我从C和Objective-C编译器中免费获得这些。 我喜欢点击Build并让系统检查我的所有代码,看A可以调用B,B可以调用一些模糊的库C等等。我所要做的只是测试语义。 但是对于Rails,我是编译器。 🙁 有人走过同样的道路吗? 我是使用C#和Java + x框架进行Web MVC的唯一选择吗? 寻找一些建议,甚至是一些同情……:P 顺便说一句,我特别提到了Rails而不是Ruby,因为我不介意Ruby的动态特性,比如脚本或其他简单的东西。 但由于Rails依赖于如此多的gem,并且由于通常会添加许多其他gem,因此动态类型成为一个问题。 谢谢! 编辑: 我跟进了pst的建议并调查了Scala。 在阅读由Scala创作者Martin Odersky撰写的“Scala编程”一书时,我发现了这一段文本,它在很多方面表达了我的关注和更多。 非常有趣的阅读。 摘自Martin Odersky的Scala编程第52页: Scala是静态类型的 静态类型系统根据它们保存和计算的值的类型对变量和表达式进行分类。 Scala是一种具有非常先进的静态类型系统的语言。 从类似Java的嵌套类类型系统开始,它允许您使用generics参数化类型,使用交叉组合类型,以及使用抽象类型隐藏类型的详细信息。 这些为构建和组合您自己的类型奠定了坚实的基础,因此您可以设计同时安全且灵活使用的界面。 如果您喜欢Perl,Python,Ruby或Groovy等动态语言,您可能会发现Scala的静态类型系统被列为其优势之一有点奇怪。 毕竟,有些人认为缺少静态类型系统是动态语言的主要优势。 反对静态类型的最常见的论点是它们使程序过于冗长,阻止程序员按照自己的意愿表达自己,并且使得软件系统的某些动态修改模式变得不可能。 但是,这些参数通常不会违反静态类型的概念,而是针对特定类型系统,这些系统被认为过于冗长或过于僵化。 例如,Smalltalk语言的发明者Alan Kay曾经说过:“我不反对类型,但我不知道任何类型的系统并不是一个完全痛苦,所以我仍然喜欢动态打字。” 我们希望在本书中说服Scala的类型系统远非“完全痛苦”。事实上,它很好地解决了静态类型的两个常见问题:通过类型推断避免了冗长,通过模式匹配获得了灵活性以及编写和撰写类型的几种新方法。 有了这些障碍,可以更好地理解静态类型系统的经典优势。 其中最重要的好处是程序抽象,安全重构和更好的文档的可validation属性。 可validation的属性 静态类型系统可以certificate没有某些运行时错误。 例如,他们可以certificate以下属性:布尔值永远不会被添加到整数; 私有变量不能从他们的课外访问; 函数应用于正确数量的参数; 只有字符串被添加到一组字符串中。 今天的静态类型系统没有检测到其他类型的错误。 例如,它们通常不会检测非终止函数,数组边界违规或除零。 他们也不会检测到你的程序不符合其规范(假设有一个规范,那就是!)。 因此,一些人认为静态类型系统不是很有用。 该论点认为,由于此类型系统只能检测简单错误,而unit testing提供更广泛的覆盖范围,为什么还要使用静态类型呢? 我们认为这些论点忽视了这一点。 虽然静态类型系统当然不能取代unit testing,但它可以通过处理一些本来需要测试的属性来减少所需的unit testing数量。 […]

如何修复“运行配置错误:”?

我正在寻找一个Rails项目,我希望能够在Ubuntu 15.10下使用IntelliJ 15.0.3(完整版)。 该项目使用“捆绑安装”构建。 Rails使用“rails s”从命令行运行。 IntelliJ(和RubyMine 8.0.3)不想启动Rails,但抱怨“[在SDK中找不到Rails]”。 我在Ubuntu中尝试过默认的ruby。 我已经尝试编译Ruby 2.3.0并将其安装在我自己的主文件夹中。 ruby二进制文件旁边有一个rails二进制文件。 gem已安装。 我不能在这个项目中使用jruby,因为需要具有原生扩展名的gem。 我怀疑我可能会遇到Ruby插件中的错误。 我可以使用的解决方法或类似方法吗?

Ruby和Java的速度

在我在网上找到的每个基准测试中,Ruby看起来很慢,比Java慢得多。 Ruby人员只是说没关系。 你能举个例子说Ruby on Rails(以及Ruby本身)的速度真的无关紧要吗?

使用Jruby而不是Ruby创建gem

所以我成功地编写了一个jruby文件并从jar文件中读取。 我还创建了一个单独的Ruby gem,安装它并成功使用它。 我想用Jruby(而不是ruby)写一个gem。 当我尝试这样做并在安装gem之后,它给了我以下错误: `require’: cannot load such file — java (LoadError) 是否有一种使用jruby编写gem的特定方法,这与编写gem usig ruby​​的方式不同? 如果是这样,请指导我一个有用的教程,帮助我使用jruby创建一个gem 谢谢。 编辑: 我将以下内容添加到jruby_gem.gemspec文件中 s.platform = ‘java’ 使用命令构建gem: gem build jruby_gem.gemspec 并使用以下命令安装它: gem install jruby_gem-0.0.0 当我尝试使用命令运行它时: irb require ‘jrubt_gem’ 我仍然有同样的错误。

如何获取jruby / warbler jar文件的路径

我正在使用JRuby和Warbler构建一个应用程序来打包它。 我的问题是我想获取当前正在运行的jar文件的路径,而不是编写java …

如何使用JRuby创建Windows服务?

我知道我们可以使用Ruby中提供的win32-service gem创建windows服务。 我们如何在JRuby中创建一个Windows服务,是否有任何特定于java的方法可以重用?