Articles of scala

PlayFramework静态文件的nginxconfiguration

我想使用Nginx的服务器/资产文件夹为我的玩! 应用。 我想要: 代理大多数文件播放! 点/资产到本地文件夹 我正在使用下面的configuration,但它不工作: worker_processes 1; error_log logs/error.log; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; upstream play_app { server 0.0.0.0:9000; } server { listen 80; location / { proxy_pass http://play_app; } } } 另外,如果我得到这个工作,我将能够通过Play.getFile("/assets/images")从Nginx /资源文件夹写入?

如何在服务器重启时在Linux上的Play框架中自动运行我的Scala应用程序?

所有。 我甚至不是新手 – 我是一个新手。 我们有一个使用Play框架在Scala上编写的工具。 我很喜欢我的Linux体验,并且没有Play或Scala的经验。 应用程序崩溃的那一天,当我们重新启动服务器,我们希望它会自动重新启动应用程序。 唉,它没有。 我终于弄清楚了应用程序的位置,写入的内容以及如何运行。 问题是它只在我的terminal窗口中运行,当然,当我注销应用程序将停止运行。 问题 :如何让服务器重新启动时自动运行? 在terminal窗口中运行时使用的命令是使用以下命令从应用程序的根目录执行的: play run 这是亚马逊Linux( https://aws.amazon.com/amazon-linux-ami/2015.03-release-notes ),玩! 2.1.1(使用Java 1.7.0_79和Scala 2.10.0)。 谢谢。

dynamicconfigurationpipe理

我正在寻找一个工具或一组工具来pipe理scala应用程序堆栈和其他应用程序(例如lighttpd)的configuration。 我一直在考虑使用Apache Zookeeper,但是我还没有find任何看起来像lighttpd(也可能是其他)的模块。 我也考虑过使用例如Puppet,但似乎没有太多的Zookeeper模块。 基本上我试图实现的是有一个服务,保持configuration,我可以dynamic重新configuration,并传播到JVM上和所有服务。

使用Play Framework在Linux上进行本地Http

我有本地主机上的Play Scala应用程序。 我想添加SSL证书(https)并在本地进行testing。 我find了一些文章,但都是关于Apache的。 有没有简单的方法来做到这一点?

Java / Scala vs Linux本地非阻塞(http)io

那么,如何使用Linux原生的Java / Scala来编写非阻塞的io呢? 在写这篇文章的时候,我只是在学习编写一个Http服务器。 所以,如果我在我的知识上有一些基本的差距,那么就很抱歉。 它目前全部使用streamio编写在Scala中。 如果我使用本地代码进行系统调用,那么显然我必须在本机C / C ++和我的Scala代码之间进行通信。 我已经做了一些JNI,我也有兴趣尝试在单独的进程中运行本机代码。 然而,我想强调我的问题不是关于Scala / Java本地接口 ,而是纯粹的优点,如果任何使用本地系统调用库在Scala / Java生态系统的Http服务。 如果使用本机,我可以使用最新的内核。 在某些方面,这个问题是关于学习的,是把我的学习时间投入到Linux生态系统中,还是投入到Java / Scala io和非阻塞的io生态系统中。 我知道有一种将TCP分stream到用户空间的举措,可以提供有趣的可能性。 我最初专注于TCP / IP服务器,这无疑是一个主要的使用案例,但也包括其他数据库访问等。 编辑展开: java.nio是完全asynchronous的,还是实际上在后台使用了一种轮询方式? 是否有可能完全asynchronous使用本地或您总是依赖于某种forms的轮询? java.nio是否完全使用现代内核的asynchronousio工具? 我的问题也受到这篇文章的启发: 在万兆以太网上stream式传输video,并且质疑使用传统的套接字。

理解!#和$ @在bash中

我刚刚开始编程scala,在“Programming in Scala”(www.artima.com/pins1ed)一书中介绍了在linux中执行scala脚本的下列方法: #!/bin/sh exec scala "$0" "$@" !# // Say hello to the first argument println("Hello, "+ args(0) +"!") 现在我已经使用了很长一段时间的Linux,但bash脚本不是我的专长。 现在我可以猜测这种types的scrpt是如何工作的(而且它的工作很好),但是我想知道!#和$ @ 到底做了什么 。 在此先感谢所有的帮助!

安装Play! 与Linux上的激活

我是新的框架玩! 和Linux,我正在尝试安装Play! 斯卡拉。 我正在关注官方教程( 官方教程 ) 但是我有这个问题: 当我运行这个命令时: $ activator new my-first-app play-scala 我有这个警告: The program 'new' is currently not installed. You can install it by typing: sudo apt-get install nmh 而当我运行sudo apt-get install nmh说: nmh is already the newest version. (我仍然有同样的问题) 我也尝试运行激活器用户界面,但我也有一个错误: Output key: !=unknown/error, -=none, 1=yes/on, 0=no/off 难道我做错了什么? 先谢谢你! 编辑:我已经定义了PATHvariables,但它已被取消后,我closures了bash。 这是问题。 所以我试图用这个命令来明确地定义PATHvariables: export […]

从Java调用Xinitthreads。 Gnuplot错误

我试图从我的Scala代码启动gnuplot。 我开始一个ProcessBuilder的外部过程 但是,当我启动gnuplot时: gnuplot -p <generated script> 所以,如: Seq("gnuplot", "-p", scriptname).! 我得到: [xcb] Unknown sequence number while processing queue [xcb] Most likely this is a multi-threaded client and XInitThreads has not been called [xcb] Aborting, sorry about that. gnuplot: ../../src/xcb_io.c:274: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed. 看来我需要调用XInitThreads 我的问题是: 如何从Java调用本地方法(我假设我可以在Scala代码中使用该方法),或者如何直接从Scala执行该方法? 会有另一个问题吗? 编辑:我不明白为什么这样做简单的事情是这样的痛苦。 我不想花整整一天的时间去挖掘最好的细节,只是为了绘制一张图表。 我只是切换到使用JFreeChart。

什么是需要为Scala创build一个监狱环境

我是程序员可以提交在游戏中相互竞争的机器人的网站的开发者。 我正在尝试将Scala添加到支持的语言列表中,但是我在这里遇到了麻烦。 问题是每个机器人都从自己的监狱运行,我无法从监狱(Linux系统btw)运行scala,因为我得到一个错误,说可执行文件没有find。 在监狱之外,一切正常。 所以我错过了一些东西放入监狱。 我有所有的Java依赖库,整个jvm文件夹和整个scala文件夹..但还有一些其他的东西仍然失踪,我无能为力。 下面是编译脚本的重要部分(它应该像我想的那样工作) #compile scalac -sourcepath src/ -d bin/ `find src/ -name '*.scala'` #create runscript echo "#!/bin/sh" > bin/run_ai echo "cd / && ./scala -Djava.security.manager -cp bin/ -J-Xss8m -J-Xmx450m '$MAIN'" >> bin/run_ai run_ai是从监狱运行bot时调用的脚本,$ MAIN是要运行的主要scala文件。 正如我所说,这一切在监狱外都很好。 这里是创build监狱内所需要的一切的脚本。 在这里,我明显错过了一些重要的东西。 mkdir -p lib64 bin lib/x86_64-linux-gnu usr/lib/x86_64-linux-gnu scala jvm proc cp /lib64/ld-linux-x86-64.so.2 lib64/ cp /bin/sh […]

在Scala / Java中如何测量从虚拟机中窃取的时间?

我在Amazon EC2微型实例的JVM上运行Play Framework Scala应用程序。 应用程序有时会索引大量文本。 但是,如果虚拟机的CPU一直处于高负载状态,则pipe理程序会通过窃取虚拟机的时间来惩罚虚拟机,并将虚拟机交给该虚拟机pipe理程序pipe理的其他虚拟机。 我正在考虑衡量目前被盗用的时间,如果它太高(例如5%以上),那么我暂停一下索引。 东西问题: 这是一个好主意吗? (这是疯了吗?还是有更好的办法?) 我如何从Scala / Java中测量被盗时间? 目前我正在考虑做一个外部的进程调用( 例如Seq("bash", "-c", "echo date ")!!到vmstat或/proc/stat并parsing输出,find被盗的时间。这可能容易出错吗?例如,如果一个新版本的vmstat以另一种格式输出数据,我猜, /proc/stat的输出不会以非向后兼容的方式改变。 所有这些都不需要在Windows上工作。 只有Linux的风格,例如Ubuntu和CentOS。 如果外部进程调用失败,我只能返回Scala的None而不是Some(percentage) 。 更新:我发现一个名为getStolen的函数getStolen ,它可能是合适的函数getStolen 。 它返回一个表示“ 系统CPU非自愿等待时间 ”的double – 但是以什么单位? 而且我不知道自从应用程序启动以来它是不幸的总计。 无论如何,这里有人用它来打印被盗时间: https : //forums.oracle.com/thread/1301532