Size: a a a

2020 February 25

N

Nikita in Go-go!
Ребят нужна помощь , настряпал такую конструкцию :

url := "https://system1.com/api" + "/hosts/" + idFrom + ".example.com"
   fmt.Println(idFrom)
   fmt.Println(url)
   obj := model.Getinfoforeman{}
   request1 := tool.NewRequestJson(url)
   request1.Header.AuthorizationBasic("test", "test")
   request1.GET("", &obj)
   bodybytes, err := json.Marshal(&obj)
   if err != nil {
     log.Fatal(err)
   }

   fmt.Println("bodystring: ", string(bodybytes))


По апи забирает список хостов , но таких урлов по которым надо проходится , если несколько , то есть https://system1.com/api  https://system2.com/api  https://system3.com/api


как доработать чтобы по всем урлам ходить и проверять если там нужная инфомация , тут вероятнее всего сделать фукцию поиска нужного урла и потом передать url1 url2 url3

для наглядности лучше пока без фукции
источник

DP

Daniel Podolsky in Go-go!
inqfen
Неудобненько(
Вам зачем?
источник

RS

Roman Sharkov in Go-go!
Kino Recovery
есть функция по работе с устройством подключенным через ttyS и через промежутки времени я его опрашиваю, но устройство может думать  до 6 секунд. У меня в программе есть main loop rоторый на основе инфы из каналов стартует горутины, чтобы не блочить цикл, в этом main loop еще триггер тикера и в ситуациях когда устройство затупило у меня стартует 2я горутина,пока та не отработал, мне надо это предотвратить
источник

i

inqfen in Go-go!
Ну 2 варианта вижу:
1. Есть более приоритетные таски в приложении, которые должны быть выполнены с определенными гарантированными ресурсами
2. Не дать сожрать весь cpu и положить логи/управление/мониторинг и прочее. Типа использовать все ядра -1
источник

K

Kino Recovery in Go-go!
ссылка битая?
источник

i

inqfen in Go-go!
2 решается тем же докером по идее, в нем affinity сделать
источник

i

inqfen in Go-go!
А вот первое нет
источник

RS

Roman Sharkov in Go-go!
Kino Recovery
ссылка битая?
нет, это просьба описать проблему на play.golang.org форматированым, компилирующимся кодом
источник

SN

Stanislav N. in Go-go!
inqfen
Ну 2 варианта вижу:
1. Есть более приоритетные таски в приложении, которые должны быть выполнены с определенными гарантированными ресурсами
2. Не дать сожрать весь cpu и положить логи/управление/мониторинг и прочее. Типа использовать все ядра -1
Для гарантированности вам в реальное время надо, которое с Go несовместимо из-за шедулера
источник

K

Kino Recovery in Go-go!
Roman Sharkov
нет, это просьба описать проблему на play.golang.org форматированым, компилирующимся кодом
уххх, описать в коде будет трудновато, то много костылей и тормозов которые будет трудно с симулировать, я узнаю, можно ли выложить программу в паблик,чтобы было удобнее  разбирать мои костыли и грабли . Заодно буду примером того, что как не надо писать программы темболее для mips 128 mb ram
источник

i

inqfen in Go-go!
Stanislav N.
Для гарантированности вам в реальное время надо, которое с Go несовместимо из-за шедулера
Ну не совсем правильно выразился - есть условно важная функция A (которая что-то куда-то пишет) в приложении и менее важные B, C и D, которые что-то считают. Точнее они не то, чтобы менее важные - но ничего страшного если посчитают немного подольше
Есть машина на 8 ядер.
С аффинити я делаю например так - ядро 1 и 2 отданы под горутины для A, 3,4,5,6,7 под B, C и D, 1 ядро никто не занимает чтобы хост всегда смог писать логи/работал мониторинг, можно было подцепиться по ssh и так далее.
Таким образом у меня функция A не будет конкурировать с остальными за одни и те же ядра, 3, 4, 5, 6, 7 могут быть утилизированы полностью, а 1 и 2 будут свободны под A
источник

i

inqfen in Go-go!
Что-то вроде такого
источник

SN

Stanislav N. in Go-go!
Это вам тогда в мультипроцессинг и IPC, но и тут шедулер никуда не денется
источник

DP

Daniel Podolsky in Go-go!
inqfen
Ну не совсем правильно выразился - есть условно важная функция A (которая что-то куда-то пишет) в приложении и менее важные B, C и D, которые что-то считают. Точнее они не то, чтобы менее важные - но ничего страшного если посчитают немного подольше
Есть машина на 8 ядер.
С аффинити я делаю например так - ядро 1 и 2 отданы под горутины для A, 3,4,5,6,7 под B, C и D, 1 ядро никто не занимает чтобы хост всегда смог писать логи/работал мониторинг, можно было подцепиться по ssh и так далее.
Таким образом у меня функция A не будет конкурировать с остальными за одни и те же ядра, 3, 4, 5, 6, 7 могут быть утилизированы полностью, а 1 и 2 будут свободны под A
Это не кейс для go.
источник

NW

Nerzh Woodcrust in Go-go!
а методы с большой и с маленькой буквы несут какой-то магический посыл ? там приватные публичные или объект класс или это просто для красоты ?
источник

i

inqfen in Go-go!
Daniel Podolsky
Это не кейс для go.
Я пока только думаю поактивнее в go вкатываться и интересно работает ли подобное
источник

МП

Мимо Проходящий in Go-go!
inqfen
Ну не совсем правильно выразился - есть условно важная функция A (которая что-то куда-то пишет) в приложении и менее важные B, C и D, которые что-то считают. Точнее они не то, чтобы менее важные - но ничего страшного если посчитают немного подольше
Есть машина на 8 ядер.
С аффинити я делаю например так - ядро 1 и 2 отданы под горутины для A, 3,4,5,6,7 под B, C и D, 1 ядро никто не занимает чтобы хост всегда смог писать логи/работал мониторинг, можно было подцепиться по ssh и так далее.
Таким образом у меня функция A не будет конкурировать с остальными за одни и те же ядра, 3, 4, 5, 6, 7 могут быть утилизированы полностью, а 1 и 2 будут свободны под A
по моему даже формулировать задачу таким образом - грех. Не то что программу писать. Нужно думать о том что и как распараллелить. А не о том, каким образом будет происходить распараллеливание на уровне планировщика
источник

i

inqfen in Go-go!
В питоне делается, но через os зависимые костыли
источник

RC

Roman Covanyan in Go-go!
inqfen
Я пока только думаю поактивнее в go вкатываться и интересно работает ли подобное
работает если лимитировать число горутин на каждый вид задач
источник

i

inqfen in Go-go!
Roman Covanyan
работает если лимитировать число горутин на каждый вид задач
Ну они же равномерно разойдутся по ядрам
источник