小编Leo*_*eon的帖子

Golang 报告“超出上下文截止日期”与 MongoDB

我写了一个更新函数,但是多次执行会报错context deadline exceeded

我的功能:

func Update(link string, m bson.M) {
    configInfo := config.Config()

    // client := GetInstance().client
    // ctx := GetInstance().ctx

    client, _ := mongo.NewClient(options.Client().ApplyURI("mongodb://localhost:27017"))
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
    defer cancel()
    err := client.Connect(ctx)
    if err != nil {
        fmt.Print("connect error!")
        fmt.Println(err)
    }
    db := client.Database("test")
    lianjia := db.Collection("test")
    _, err = lianjia.UpdateOne(ctx, bson.M{"Link": link}, bson.M{"$set": m})
    if err != nil {
        fmt.Print("update error!")
        fmt.Println(err)
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

update error!context deadline exceeded
Run Code Online (Sandbox Code Playgroud)

go mongodb

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

生成数字,具有高汉明距离

我正在寻找一种快速的方法来生成小于2 ^ 64的k个非负整数,其中,在基数2中,任意两个数之间的最小汉明距离尽可能高.

例如,如果我正在寻找k = 4的数字并且它们应该小于2 ^ 4它们可以是:
0000
0011
1100
1111
并且最小汉明距离将是2.

是否有快速算法为给定的k生成这些数字?我将得到大约10 ^ 4的k.

或者,产生一组数字的算法也可以正常工作,所述数字具有成对的汉明距离大于给定值.

algorithm hamming-distance

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

计算范围内的项目

p1 = (0, 10, 1)
p2 = (0, -20, -2)
p3 = (0,10,2)
Run Code Online (Sandbox Code Playgroud)

嗨,

我有上面的代码,我只想快速计算每个范围内有多少项而不迭代它?(它是一些嵌套循环的一部分).所以p1会返回9.

还有更好的方法将这些变量传递给范围函数吗?

现在我起诉:

range(p1[0], p1[1], p1[2])
Run Code Online (Sandbox Code Playgroud)

python range python-3.x

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

编码蝙蝠错了,还是我的代码错了?

我一直在CodingBat上练习,我被困在Logic-1> alarm_clock问题上.这是我的代码

def alarm_clock(day, vacation):
  if 0 < day < 6 and not vacation:
    return "7:00"
  elif day == 0 or day == 6 and not vacation:
    return "10:00"
  elif day == 6 or day == 0 and vacation:
    return "off"
  else:
    return "10:00"
Run Code Online (Sandbox Code Playgroud)

但是,该网站告诉我,我的代码不正确. 这是网站

python

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

使用gorountine的多线程

我正在尝试使用Go自动化我的侦察工具.到目前为止,我可以在kali(Nikto/whois)中运行两个基本工具.现在我希望它们并行执行,而不是等待一个函数完成.读了一下之后,我才知道这可以通过使用goroutines来实现.但我的代码似乎不起作用:

package main

import (
    "log"
    "os/exec"
    "os"
    "fmt"
)

var url string

func nikto(){
    cmd := exec.Command("nikto","-h",url)
    cmd.Stdout = os.Stdout
    err := cmd.Run()
    if err != nil {
        log.Fatal(err)
    }
}

func whois() {
    cmd := exec.Command("whois","google.co")
    cmd.Stdout = os.Stdout
    err := cmd.Run()
    if err !=nil {
        log.Fatal(err)
    }
}

func main(){
    fmt.Printf("Please input URL")
    fmt.Scanln(&url)
    nikto()
    go whois()
}
Run Code Online (Sandbox Code Playgroud)

我明白在这里,go whois()会一直执行main(),但我仍然看不到它们都执行并行.

go goroutine

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