草庐IT

主程序

全部标签

http - 如何在 Go 中执行 HTTP 双工处理程序?

我听说了here那个onceyouwriteanythingintheresponse,therequestbodywillbeclosedwhichpreventsyoufromreadinganythingfromit如果那是真的,我如何编写一个合适的双工处理程序,它能够从请求主体中读取,进行某种转换,然后写入响应主体,就像人们在节点中所做的那样,以流方式.js? 最佳答案 我最终设法用http.Hijacker做到了这一点。发出请求并解析请求header后,我可以从*http.Request.Body中读取,然后劫持连接并写入

mysql - Google 是否不鼓励使用第 3 方 Go 驱动程序来使用云 sql?

根据thisCloudSQL有一个Go库。GoogleCloudSQLonAppEngine:user@cloudsql(project-id:instance-name)/dbname但是根据GAE站点,您可以(也许应该?)仅使用java或python连接到CloudSQL:https://developers.google.com/cloud-sql/faq#languagesCanIuselanguagesotherthanJavaorPython?OnlyJavaandPythonaresupportedforGoogleCloudSQL.我正在确定GAE是否适合我的Go应用程

json - AppEngine Go 应用程序中的奇怪行为

我有一个Go(Golang)应用程序,它在96天前部署在AppEngine上,此后没有任何变化。大约12小时前,我开始收到大量以下错误:JSONfailedtodecodeGooglePlaytokenclaims(json:cannotunmarshalboolintoGovalueoftypestring).有没有人遇到过类似的问题,或者知道是什么改变导致了这个问题? 最佳答案 问题似乎是Google将身份验证API的响应结构从字符串(一开始很奇怪)更改为bool值。我的第一个假设是我这边出了问题,但这一次我可以说这是谷歌的错。

url - Go程序编译但在运行时返回奇怪的错误

所以我是Golang的新手(今天开始学习它)并且我一直在写一个URL缩短器但是在运行goinstall然后从CLI运行编译的程序后它返回这个错误:2014/04/0519:05:27invalidcharacter'代码引用:https://github.com/hullswitch/urlshortnr 最佳答案 您的问题是由您对GoogleURLShortner的请求引起的。它使用HTML正文而不是JSON返回404错误。您可以调试它,将log.Println(string(output))添加到if处理Unmarshal之后的

go - 使用 SQL 驱动程序交叉编译 Go 程序

我有一个非常简单的Go测试程序,它使用OracleSQL驱动程序(“github.com/mattn/go-oci8”)。我在OSX上构建并测试它并且它可以工作。现在想在linux上交叉编译运行。我是这样编译的:CGO_ENABLED=0GOOS=linuxGOARCH=amd64goinstallgithub.com/mattn/go-oci8CGO_ENABLED=0GOOS=linuxGOARCH=amd64gobuildmyoracle.go但是当我尝试运行它时,我得到了$./myoraclesql:unknowndriver"oci8"(forgottenimport?)代码

Go:制作一个可从其他 Go 应用程序调用的守护进程

我正在编写一个巨大的单词词典->语言,我拥有的数据,但我需要的是让一个线程运行一个守护进程,用Go编写,它将所有这些保存在内存中(是的,我也有那么多内存)并且可以被其他Go应用程序“调用”。我确信这是一种标准类型的操作,但老实说,我以前从未尝试过这样的操作,而且我不太熟悉,不知道在哪里可以找到有关如何执行此操作的信息。让它作为守护进程运行很容易。我的问题是什么是从另一个Go应用程序调用此应用程序的有效方法,这将需要完成数百万次。我在想一些事情:connection,err:=InitateConnectionToApp()for_,someword:=rangemysliceofstr

google-app-engine - App Engine for Go 应用程序更新未反射(reflect)

使用GoogleAppEngineforGo。我已经成功部署了我的项目更新,但它没有反射(reflect)在WebURL上。有人对此有任何想法吗?我试过更新两次。命令已尝试goapp部署appcfg.py更新myapp/ 最佳答案 当您切换版本号时,AppEngine将继续提供旧版本,直到您在AppEngine控制台中更改了默认版本。这是设计使然;它允许您在生产环境中运行更新的版本,您可以在不影响现有用户的情况下对其进行测试(您还可以对当前推送到生产环境的不同版本运行A/B测试)。 关于

linux - 如何从Windows部署Go程序到CentOS服务器

我有一个在Windows上运行的Go软件包并且运行良好,但现在我想在生产CentOS6.5服务器上测试它。将其从Windows部署到CentOS的最佳做法是什么?我是否必须使用我的Git存储库分发到Linux操作系统,编译然后将二进制文件部署到服务器?我还有多个文件,所以我想gobuild*.go就足够了,还是有更好的编译选项? 最佳答案 WhatisthebestpracticetodeploythisfromWindowstoCentOS?就最佳实践而言,我建议使用持续集成。您可以设置jenkins,或者那里有一些云选项:cod

google-app-engine - 重新构建在 docker 容器中运行的 Go (App Engine) 应用程序?

通常,当您使用Go-Appengine的goappserve命令运行Go应用程序时,会检测到文件更改并启动重新构建。INFO2015-01-11...Detectedfilechanges:...我目前正在尝试运行Go-Appengineinsideadockercontainer,并且当服务器正常启动时,文件更改不会启动重建。我该如何做到这一点?根据我的个人经验,在检测到文件更改时,在docker容器内部和外部运行的Django项目的行为方式相同。 最佳答案 我认为这里的问题是文件不会在docker-container内部发生变化

concurrency - 大量数据竞赛 Web 应用程序

我正在编写一个网络应用程序。传入的请求将首先通过中间件。目前,我添加了两个中间件session和security。遍历中间件后,它将执行请求的处理程序。session和安全中间件将在它们自己的goroutine中执行。当我测试时,我有很多数据竞争,特别是在中间件部分WARNING:DATARACEWritebygoroutine18:runtime.mapassign1()c:/go/src/runtime/hashmap.go:383+0x0net/textproto.MIMEHeader.Set()c:/go/src/net/textproto/header.go:22+0xf4n