小编Dan*_*ner的帖子

在golang中没有时间处理日期的惯用方法是什么?

我正在Go中编写REST API,使用不代表单个时间点的日期.

它是以"2006-01-02"格式进出服务器的JSON数据,该数据使用DATE列与mysql数据库通信.

我尝试过的一件事是创建一个嵌入Time的结构,并实现JSON和SQL转换接口实现,以便能够正确地与端点交互,同时仍然有Time方法可用于日期数学和格式化.例如:

package localdate

import (
    "time"
    "encoding/json"
    "database/sql/driver"
)

type LocalDate struct {
    time.Time
}

func NewLocalDate(year int, month time.Month, day int) LocalDate {
    time := time.Date(year, month, day, 0, 0, 0, 0, time.UTC)
    return LocalDate{Time: time}
}

const LocalDateFormat = "2006-01-02" // yyyy-mm-dd

func (ld *LocalDate) UnmarshalJSON(data []byte) error {
    // parse and set the ld.Time variable
}

func (ld *LocalDate) MarshalJSON() ([]byte, error) {
    return json.Marshal(ld.Format(LocalDateFormat))
}

// sql.Scanner implementation to convert a time.Time column …
Run Code Online (Sandbox Code Playgroud)

date go

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

任何Monit都喜欢Windows操作系统的等价物吗?

我已经看到问题"你能在Windows上运行Monit吗?",除非你想使用虚拟机,否则答案似乎是否定的.

那么......对于Windows操作系统来说,是否存在任何小型的类似monit的应用程序?我正在寻找的不仅是监控(其中有数百个应用程序),还有执行脚本或重新启动服务的能力.例如,监视一个网页,如果该页面没有响应,则重新启动Tomcat(不能只监视该服务,因为该服务仍在运行但没有正确响应).

这适用于小型应用程序,而不是大型应用程序,因此不需要重量级/昂贵的解决方案.

system-monitoring

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

手动启动 Kubernetes CronJob

对于名为 的已部署 Kubernetes CronJob foo,如何立即手动运行它?这将用于在其配置的计划之外进行测试或手动运行。

kubernetes kubernetes-cronjob

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

使用groovy.xml.MarkupBuilder语法追加到现有的groovy.util.Node?

我正在使用一个返回groovy.util.Node的API,允许我自定义生成的XML.我需要将一个子元素附加到Node中,我想知道我是否可以使用MarkupBuilder语法来修改Node.

例如,这里的东西有效,但看起来很笨拙:

withXml { rootNode ->
    def appendedNode = new Node(rootNode, 'foo', [name:'bar'])
    def appendedNodeChild = new Node(appendedNode, 'child', [blah:'baz'])
}
Run Code Online (Sandbox Code Playgroud)

有没有办法使用MarkupBuilder-ish语法附加到rootNode?谢谢.

xml groovy

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

golang - marshal PKCS8私钥?

有没有办法在1.5中编组PKCS8私钥?
例如类似于或从x509.MarshalPKCS1PrivateKey哪里开始?

go pkcs#8

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

Grails 3.0添加内联插件

我使用以下命令创建了简单的grails 3.0应用程序:

  1. create-app admin --profile = web
  2. create-plugin core --profile = plugin

现在,我想在core build中使用core作为内联插件,这是一个Web应用程序.

我们可以在buildconfig中的grails版本<3.0中轻松完成.我在哪里可以用grails 3.0做到这一点.每一个帮助都值得赞赏.

grails-plugin grails-3.0

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

Go - 如何增加最大Stdin输入长度?

从Go中的标准输入读取时,建议允许超过1024个字符的方法是什么?

例如,此代码使用bufio.Scanner的最大输入长度为1024.

package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    scanner := bufio.NewScanner(os.Stdin)
    scanner.Scan()
    input := scanner.Text()
    fmt.Println(input)
}
Run Code Online (Sandbox Code Playgroud)

一些建议的答案后更新......对不起的家伙 - 我仍然必须做错事,或者错误地提出问题.我尝试了两个建议,但仍然看到同样的问题.以下是代码的更新版本.症状是扫描仪在第1024个字符后不接受输入.例如,尝试运行它然后粘贴一个长度为1025个字符的字符串,并且它将在字符1024之后停止接受输入.

package main

import (
    "bufio"
    "bytes"
    "fmt"
    "log"
    "os"
)

func main() {
    var buffer bytes.Buffer
    scanner := bufio.NewScanner(os.Stdin)

    for {
        done := scanner.Scan()
        buffer.WriteString(scanner.Text())
        if done == true {
            if scanner.Err() != nil {
                log.Fatal("Error scanning input")
            }
            break
        }
    }
    fmt.Println(buffer.String())
}
Run Code Online (Sandbox Code Playgroud)

go

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

从 PostgreSQL 表中 POP 一行

什么相当于PostgresSQL 中的 Redis LPOP命令?

例如,在下表中,以包含两行 a 和 bthings的单列命名thing

thing
----
a
b
Run Code Online (Sandbox Code Playgroud)

What's a correct command to atomically remove and return a row in the table? Using the above example, I'd expect it to return a single row ('a') and delete it as part of a transaction/lock.

postgresql

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