小编Ser*_*hko的帖子

从lambdas或Kotlin返回:这里不允许"返回"

我正在尝试写函数,它会告诉我字符串很好,很好意味着字符串在字符串中至少有一个重复的字母.但我无法从lambda返回,它总是返回false,尽管if语句中的条件已经过去了.有人能解释我怎么回报?

我试着写回报,但是IDEA给了我Kotlin的消息:这里不允许'返回'

fun main(args: Array<String>) {
    println("sddfsdf".isNice())
}

fun String.isNice(): Boolean {
    val hasRepeat = {
        for (i in 0 .. (length - 2)) {
            if (subSequence(i, i + 2).toSet().size == 1) {
                true
                println(subSequence(i, i + 2))
            }
        }
        false
    }

    return hasRepeat()
}
Run Code Online (Sandbox Code Playgroud)

输出是:

dd
false
Run Code Online (Sandbox Code Playgroud)

kotlin

31
推荐指数
2
解决办法
1万
查看次数

在多线程环境中使用Spring WebClient的正确方法

我有一个关于Spring WebClient的问题

在我的应用程序中,我需要执行许多类似的API调用,有时我需要在调用中更改标头(身份验证令牌).所以问题出现了,两种选择会更好:

  1. 要为MyService.class的所有传入请求创建一个WebClient,通过使其成为private final字段,如下面的代码:

    private final WebClient webClient = WebClient.builder()
            .baseUrl("https://another_host.com/api/get_inf")
            .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
            .defaultHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE)
            .build();
    

这里出现了另一个问题:WebClient线程安全吗?(因为服务被许多线程使用)

  1. 为传入服务类的每个新请求创建新的WebClient.

我想提供最大的性能,并以正确的方式使用它,但我不知道WebClient如何在其中工作,以及它如何使用.

谢谢.

spring spring-webflux

19
推荐指数
2
解决办法
9749
查看次数

Django是否使用进程或线程来处理视图中的用户请求?

Django是否使用进程或线程来处理视图中的用户请求?

如果Django使用线程我不能使用所有CPU核心(python全局解释器锁),如果Django使用进程我不能无需担心共享内存.

我试图在谷歌中找到信息,但我设法找到的最大值是django使用线程来处理请求吗?这似乎不是一个答案.

django

11
推荐指数
1
解决办法
3923
查看次数

从命令行获取其名称的传递和失败测试的数量

我正在编写将mvn test在不同文件夹上运行的Python脚本,我希望从脚本中获取通过测试和失败测试的数量及其名称.

现在我已经设法运行进程并获得输出

proc = subprocess.run(["mvn", "test", "-f", PROJ_PATH])
print(proc.stdout)
Run Code Online (Sandbox Code Playgroud)

输出:

   Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.715 s
[INFO] Finished at: 2016-10-12T18:59:11+03:00
[INFO] Final Memory: 10M/212M
[INFO] ------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用regexp并尝试解析输出,但可能有一些更合适的方法可以从Python或Bash中加入Maven.

maven maven-surefire-plugin

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

没有结果的Celery任务写入结果后端

我有一些应该返回结果的任务,而有些任务则没有.我想强制不应返回结果的任务不在结果后端写入任何内容(例如None).我怎样才能在芹菜中实现这一目标?

例如,这是我的任务:

@app.task
def taskWithResult():
    # ...code...
    return res

@app.task
def taskWithNoResult():
    # ...code without return...
Run Code Online (Sandbox Code Playgroud)

而且我也有一些特殊队列用于其他一些也没有返回任何结果的任务,我可以将该队列标记为必须不在结果后端写入的任务吗?

celery django-celery

4
推荐指数
2
解决办法
3685
查看次数

Python多处理池线程安全吗?

我有Django专案。如果我使包含Pool()对象的程序包变量成为变量,并尝试从Django视图(以并行方式运行)中使用该Pool,那么线程安全吗?还有其他方法吗?

from multiprocessing import Pool
general_executor_pool = Pool()
Run Code Online (Sandbox Code Playgroud)

python django

3
推荐指数
1
解决办法
778
查看次数

TeamCity API 设置配置参数

我有配置参数current_build_date(用户定义参数),我只想通过 API TeamCity 将此参数设置为当前日期。

在文档上我看到了这个:

http://teamcity:8111/httpAuth/app/rest/buildTypes/<buildTypeLocator>/parameters/<parameter_name>
Run Code Online (Sandbox Code Playgroud)

我知道我的Build 配置 ID,但我无法理解如何通过它来制作buildTypeLocator

我假设结果会是这样的:

 curl -u Login:Password \
      -X PUT \
      -d 'valueOfMyParam' \
      -H 'Content-Type: text/plain' \
      http://teamcity:8111/httpAuth/app/rest/buildTypes/<buildTypeLocator>/parameters/current_build_date
Run Code Online (Sandbox Code Playgroud)

如果了解 TeamCity API 的人能够帮助我解决这个问题,我将非常感激。

我尝试只是传递而不是 buildTypeLocator 我的构建配置 ID,但出现错误:

[17:08:25][Step 3/3] Error has occurred during request processing (Not Found).
[17:08:25][Step 3/3] Error: jetbrains.buildServer.server.rest.errors.NotFoundException: No project found by name or internal/external id 'BuildConfigurationID'.
Run Code Online (Sandbox Code Playgroud)

如果我的问题有任何问题或含糊之处,请添加评论,我会尽力解决它。

teamcity teamcity-8.0 teamcity-9.0

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

反应堆.单声道列表,重试失败

我有清单List<Mono<String>>.每个Mono代表API调用,我在I/O上等待结果.问题是有些调用没有返回任何内容(空字符串),我需要在这种情况下再次重复它们.

现在它看起来像这样:

val firstAskForItemsRetrieved = firstAskForItems.map {
    it["statistic"] = (it["statistic"] as Mono<Map<Any, Any>>).block()
    it
}
Run Code Online (Sandbox Code Playgroud)

我正在等待所有Monos完成,然后在空身的情况下我重复请求

val secondAskForItem = firstAskForItemsRetrieved
        .map {
            if ((it["statistic"] as Map<Any, Any>).isEmpty()) {
                // repeat request 
                it["statistic"] = getUserItem(userName) // return Mono
            } else
                it["statistic"] = Mono.just(it["statistic"])
            it
        }
Run Code Online (Sandbox Code Playgroud)

然后再次阻止每个项目

val secondAskForItemsRetrieved = secondAskForItems.map {
    it["statistic"] = (it["statistic"] as Mono<Map<Any, Any>>).block()
    it
}
Run Code Online (Sandbox Code Playgroud)

我觉得这看起来很难看

  • 有没有其他方法可以在Mono中重试呼叫,如果它失败了,而不是手动操作?

  • 它是否阻止每个项目以正确的方式获取它们?

  • 如何使代码更好?

谢谢.

reactor project-reactor

0
推荐指数
1
解决办法
348
查看次数