小编Son*_*123的帖子

处理不可变类中的超时

我想要一个线程安全(不可变)的Scala类来完成一项长期工作.对于某些极端情况,任务需要很长时间,所以我想实现超时.在不可变类中实现它的最佳方法是什么?

我的第一次尝试是使用这样的隐式参数:

class Worker(val input: String) {

  def start: String = {
    implicit val startTimeStamp = new TimeStamp
    doSomething1 + doSomething2
  }

  def doSomething1()(implicit startTimeStamp: TimeStamp): String = { ... }

  def doSomething2()(implicit startTimeStamp: TimeStamp): String = {
    ... 
    checkTimeout 
    ...
   }
}

class TimeStamp { val start = System.currentTimeMillis }
Run Code Online (Sandbox Code Playgroud)

这应该有效,但仍有很多带有隐含参数的样板代码.(在实际代码中,我doSomething在worker类中有数百个深层嵌套函数.)在Scala中有更好的方法吗?

timeout scala immutability thread-safety

7
推荐指数
1
解决办法
429
查看次数

Playframework应用程序包括一个独立的主应用程序

我正在用Java中的Playframework 2.2编写一个webapp.现在我想添加一个小的独立文本到数据库导入工具,它只包含一个带有main方法的Java文件:

public static void main(String[] args) {
  importTextToDatabase();
} 
Run Code Online (Sandbox Code Playgroud)
  • 我可以将这个独立的迷你应用程序与其余的webapp一起包含在内吗?
  • 我怎样才能在activator(或sbt)(没有webapp)中运行它?
  • 或者为这个应用程序创建第二个项目更好吗?

java program-entry-point playframework playframework-2.2

7
推荐指数
1
解决办法
2724
查看次数

NextJS:在服务器上运行 Typescript 脚本

我有一个 NextJS/Typescript 项目,我想在其中添加一个 CLI 脚本,该脚本应该处理服务器上的一些文件。

不幸的是我无法运行该脚本。

示例脚本src/cli.ts

console.log("Hello world");
// Process files
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下命令运行脚本:

ts-node src/cli.ts
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息:

src/cli.ts:1:1 - error TS1208: 'cli.ts' cannot be compiled under '--isolatedModules' because it is considered a global script file. Add an import, export, or an empty 'export {}' statement to make it a module.
Run Code Online (Sandbox Code Playgroud)

当我添加空的“export {}”语句时,我收到以下错误消息:

(node:15923) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
Run Code Online (Sandbox Code Playgroud)

据我所知,现在不可能将 NextJS 与 ES 模块一起使用。

还有另一种方法可以在 NextJS 项目中运行脚本吗?也许我需要更改 webpack …

typescript next.js ts-node

7
推荐指数
3
解决办法
4757
查看次数

番石榴:CharEscaper在哪里?

我需要将字符串编码为Javascript文本.

通过谷歌搜索我发现SourceCodeEscapers.javascriptEscapercom.google.common.escape.CharEscaper包中应该在Guava中 非常有用的功能.

但实际的Guava 13.0.1版似乎没有.(Dzone也有关于版本11中新CharEscapers的注释,但我在发行说明中找不到任何关于它的内容.)

CharEscaper-class感动?是不是在番石榴?它将来会发布吗?

escaping guava

6
推荐指数
1
解决办法
856
查看次数

test/resources目录中的源将在Play 2中编译

我想将Maven项目迁移到Play 2/sbt:

src/test/resources在Maven项目中有一些测试资源,我test/resources/在Play项目中移动了(感谢Schleichardt 在Stackoverflow上的回答).

这适用于普通文件(文本,二进制数据......),但现在我的Java-Source文件也存在于test/resources/目录中(我必须在不同的java源文件中测试项目中的Java解析器).当我test在游戏中调用时,这些文件也会被编译,因此我会收到错误.

如何防止文件test/resources/从Play/sbt编译?

sbt playframework playframework-2.0

6
推荐指数
1
解决办法
3640
查看次数

播放:二进制Web服务响应

我必须调用一个webservice,它给我一个二进制文件的内容.我只想将相同的内容返回给我的控制器的调用者:

val blobPromise = WS.url("http://url/to/webservice/file.txt").get()
Async {
  blobPromise.map(f => Ok(f.body))
}
Run Code Online (Sandbox Code Playgroud)

这适用于文本文件,但二进制文件将被破坏.我在这做错了什么?(也许f.body是将Web服务的二进制结果编码为String?但是如何获取原始数据呢?)

我知道,对于大文件来说这不是一个好方法 - 我已经在Play文档中读到了有关Streaming HTTP响应的内容,但对于我来说,作为Play框架的初学者,这似乎很复杂.

web-services scala playframework-2.0

6
推荐指数
1
解决办法
1949
查看次数

Play框架中的Twitter引导辅助程序是否已弃用?

我经常在我的Web应用程序中使用Twitter引导程序表单模板助手,因为这非常简单.

昨天我想创建一个带有水平字段的表单,并在GitHub上找到一个Pull-Request,带有来自guillaumebort的注释(一年),帮助器将在下一个版本中弃用.但我在Play模板助手中找不到任何关于它的内容.文档.

  • 帮助程序是否已弃用或是否会更新?
  • 是否已经有更复杂的Bootstrap模板助手作为插件?(我想很多人都在使用Play + Bootstrap.)
  • ...或者我应该编写自己的助手来支持水平字段吗?

playframework twitter-bootstrap playframework-2.1

5
推荐指数
1
解决办法
2235
查看次数

在浏览器中构建一个scala解释器

我与Scala的第一次接触是通过SimplyScala教程:您不需要安装任何东西,只需开始编码即可.几个小时后我爱上了这门语言......

多年以后,我为Scala库编写了一个Web文档作为Play应用程序.构建像SimplyScala这样的东西并将其集成到文档中会很酷,这样用户就可以在浏览器中输入Scala命令并获得结果.

SimplyScala就像Google App Engine上的LotREPLS(只有少数LOC的旧开源Java项目).

也可以在我自己的服务器上创建这样的东西而不会出现安全漏洞(例如,用户不应该从服务器读取文件......)?

我只需要Scala语言的"基础"而不需要像SimplyScala那样的任何导入.

我的第一个想法是编写一个自己的SecurityManager并处理超时,这样用户就不会消耗太多的服务器时间.有没有更简单的方法或现有的开源项目?

或者建议用户安装Scala并使用终端而不是浏览器更合理?;-)

在Scala主页上是一个类似于Play of the 2012夏季代码Scala项目的想法:但我找不到任何结果.

scala

5
推荐指数
2
解决办法
2726
查看次数

使用 IntelliJ 社区获取 AST

我正在构建一个小型 Java 代码分析工具,想知道是否可以使用令人惊叹的 IntelliJ 编译器来获取 Java 项目的 AST?

IntelliJ几年前在 Apache 2 许可证下开源了社区版本。该项目还可以用作 Java 独立项目中的库(而不是完整 IDE 的插件)来分析 Java 项目吗?Git 存储库相当大,我很感激任何从哪里开始的提示或链接。

(我已经阅读过有关Eclipse JDT 的内容,但创建自己的 Mini-ANTLR-Java 解析器比让 Eclipse JDT 为我工作要容易得多。但如果我可以使用更复杂、始终最新的,那就太棒了-我的项目的 Java AST 的最新版本。所以我的希望寄托在 IntelliJ 编译器上。)

java parsing code-analysis intellij-idea abstract-syntax-tree

5
推荐指数
0
解决办法
1916
查看次数

Elasticsearch:从点击中学习(搜索结果排名)

我已经阅读了《编程集体智慧》一书中的“从点击中学习”一章,并喜欢这样的想法:那里的搜索引擎了解用户点击了哪些结果,并使用此信息来提高结果的排名。

我认为,如果我可以从用户点击中学习的话,它将大大提高我的Java / Elasticsearch应用程序中搜索排名的质量。

在这本书中,他们建立了一个多人感知器(MLP)网络,甚至可以将学习到的信息用于新的搜索短语。他们使用带有SQL数据库的Python来计算搜索排名。

有没有人已经用Elasticsearch实现了这样的事情,或者知道一个示例项目?如果我可以直接在Elasticsearch中管理点击信息而不需要额外的SQL数据库,那就太好了。

java search machine-learning relevance elasticsearch

4
推荐指数
1
解决办法
1979
查看次数