我有一个模型,其中有3个实体:
User
Project
Contributor
Run Code Online (Sandbox Code Playgroud)
项目拥有所有者(他是用户)并且有多个贡献者(他们是用户).在我的仪表板中,我想列出用户的项目,即用户是所有者或贡献者的所有项目.
寻找拥有的项目Project.findAll({where: [owner: user]})是微不足道的.如何修改此项以查找用户也是贡献者的项目?这将(在数据库查询中)使用EXISTS子句转换为子查询.
我正在尝试在GCE上为2个Tomcat服务器设置负载均衡器,在2个VM(vm-1和vm-2)上单独运行.两者都在端口80上侦听,网络防火墙规则允许80来自任何源(0.0.0.0/0)的端口上的流量.现在,我创建了一个同时调用这两个VM的实例组,vm-group并设置一个名为http指向端口的命名端口80.
我也创建了一个运行状况检查,在端口上80指向/<app_name>/<health_url>,如果应用程序运行正常,则会报告HTTP 200.
然后,我使用此视频中的说明设置HTTP负载均衡器.设置完成后,我发现负载均衡器报告0/2实例正常,这意味着运行状况检查失败.
当我手动点击健康检查网址时,他们会返回HTTP 200- 所以我的应用程序是健康的.
现在,我不确定为什么负载均衡器会将虚拟机报告为运行状况不佳并且无法路由请求.我该如何进一步调试?
编辑:我验证了这个问题中google-address-manager提到的正在运行.
我正在尝试对服务器进行 HTTP 调用,并使用 10 秒的客户端超时。我处理它的当前(不正确)方式是这样的:
package checks
import "net/http"
import "fmt"
import "log"
import "time"
import "strings"
var client = &http.Client{Timeout: 10 * time.Second}
func HttpCheck(url string) (string, error) {
log.Printf("initiating http get to %s\n", url)
resp, err := client.Get(url)
if err != nil {
if strings.Contains(err.Error(), "Client.Timeout") {
return "loading", nil
} else {
log.Printf("error while getting url : %s\n", err.Error())
return "", err
}
}
defer resp.Body.Close()
if resp.StatusCode != 200 {
log.Printf("got a non 200 response: %d", …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Go 构建一个示例共享对象库。代码编译(使用命令go build -o libsample.so -buildmode=c-shared .),成功构建了一个共享对象库 - 但是在通过 JNA(来自 Java)或 ctypes(来自 python)访问导出的方法时,我感到恐慌。我用 Go 写的代码是:
// package name: libsample.so
package main
import "C"
import "fmt"
//export Hello
func Hello(s string) {
fmt.Println("Hello " + s + "!")
}
func main() {
}
Run Code Online (Sandbox Code Playgroud)
Hello从 Java访问此方法时:
import com.sun.jna.*;
public class sample {
public interface GoSO extends Library {
GoSO INSTANCE = (GoSO) Native.loadLibrary("sample" ,GoSO.class);
void Hello(String s);
}
public static void main(String[] args) {
GoSO.INSTANCE.Hello("World");
}
}
Run Code Online (Sandbox Code Playgroud)
或来自 …
https://play.golang.org/p/kK9c71Yt9N - 这是我正在使用的代码。
我试图了解变量的词法范围X。如果我使用第:=11 行中的运算符,则X定义在外的func main会被隐藏,并且会在函数内创建一个新的作用域。如果我=在同一行中使用运算符,编译器会抱怨err未定义。
我的理解是:=操作员创建了未定义的变量,因此只err需要定义即可。但是,这种理解显然是错误的。
我可以做哪些代码更改以确保X不在 内重新定义main()?
我知道我可以执行以下操作以确保X不会在 内重新定义main():
var err error
X, err = InitX()
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法可以让我失踪?