go - 如何使用 Go 外部插件与 Telegraf 交互?
问题描述
我有一个虚拟的 GO 插件,使用它,我想将数据发送到电报。但是,我无法找到任何方法将数据从插件发送到电报。这个外部 Go 插件如下所示
package main
import (
"fmt"
"time"
)
type greeting string
type n int
func (g greeting) Greet() {
for i := 0; i < 10; i++ {
timer1 := time.NewTimer(2 * time.Second)
<-timer1.C
fmt.Println("value ", i)
sum := 0
sum += i * 100
fmt.Println(sum)
}
}
// exported
var Greeter greeting
主文件看起来像
import (
"fmt"
"os"
"plugin"
)
type Greeter interface {
Greet()
}
func main() {
var mod string
mod = "./eng/eng.so"
// load module
// 1. open the so file to load the symbols
plug, err := plugin.Open(mod)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
// 2. look up a symbol (an exported function or variable)
// in this case, variable Greeter
symGreeter, err := plug.Lookup("Greeter")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
// 3. Assert that loaded symbol is of a desired type
// in this case interface type Greeter (defined above)
var greeter Greeter
greeter, ok := symGreeter.(Greeter)
if !ok {
fmt.Println("unexpected type from module symbol")
os.Exit(1)
}
// 4. use the module
greeter.Greet()
}
任何人都可以帮助我找到如何使 GO 插件和电报工作之间的交互的方法或方向。任何抬头表示赞赏。
解决方案
推荐阅读
- java - 我应该在 Android 中使用 Java JDBC 进行 Mysql 连接吗?一般是怎么做的?
- python - 在 python 中更改 .json 文件
- html - 用户从 Web 表单上传图像
- node.js - 在 Linode 服务器上运行的 Docker 容器无法连接到 mongo atlas 集群
- java - 如何使用用户设置打印 PDF 文档?
- oracle - Oracle:日期和时间戳之间的差异(0)
- amazon-web-services - AWS SageMaker 上的数据预处理
- kubernetes - StorageClass ProvisioningFailed:在 matchLabelExpressions 中找到不受支持的键:topology.kubernetes.io/region
- openvpn - OpenVPN 客户端作为互联网网关
- logging - 如何为 3rd 方库使用 bunyan 日志记录?