Несколько экземпляров пакета Golang внутри одной и той же программы - PullRequest
0 голосов
/ 22 июня 2019

В настоящее время я работаю над Golang и столкнулся с проблемой, связанной с созданием пакета.

Проблема: можем ли мы иметь разные экземпляры одного и того же пакета.

Проблема: При сборкепакеты go, пакеты утилит (не основные) создаются или компилируются только один раз в течение этого конкретного процесса сборки.Но при ведении журнала я, с какой-то целью, хочу, чтобы разные регистраторы параллельно обрабатывали разные пакеты или файлы.Есть ли способ, чтобы у меня могло быть несколько экземпляров одного и того же пакета, чтобы изменения, внесенные в один из них, не влияли на другой.

Примечание: я нашел хороший способ использовать библиотеку go-logging, где я объявил несколько регистраторов, и это вполне удовлетворяет мои потребности.Итак, мой главный вопрос - можем ли мы иметь разные экземпляры одного и того же пакета.

Спасибо, что ответили.

1 Ответ

0 голосов
/ 22 июня 2019

Вы можете использовать модули Go и псевдонимы для импорта двух пакетов в одном исходном файле. Это сработает, когда цитата будет помечена как репо или субмодуль.

import (
    "rsc.io/quote"
    quoteV3 "rsc.io/quote/v3"
)

func Hello() string {
    return quote.Hello()
}

func Proverb() string {
    return quoteV3.Concurrency()
}
...