Size: a a a

Эликсир и Вунш

2019 July 04

#@

# @ in Эликсир и Вунш
cleverfox 🦊
Может ты объяснишь что ты хочешь сделать в целом, а мы попытаемся объяснить как это стоит делать
Собственно отлов пакетов на 19000 порту, это обычные xml,  потом другой модуль должен егг распарсить в map
источник

c🦊

cleverfox 🦊 in Эликсир и Вунш
Или, если передать в другой процесс, то сообщение отправляй
источник

AP

Andrey Pavlov in Эликсир и Вунш
cleverfox 🦊
Вызвать функцию в другом модуле и передать данные аргументом
Или так
источник

AP

Andrey Pavlov in Эликсир и Вунш
Вариантов на самом деле не много.
источник

AP

Andrey Pavlov in Эликсир и Вунш
Можно в общую память писать еще:)
источник

c🦊

cleverfox 🦊 in Эликсир и Вунш
Все зависит от того хочешь ты это делать (приём и парсинг) параллельно или последовательно
источник

#@

# @ in Эликсир и Вунш
Ну наверное разумно сделать прием и парсинг пакета последовательно, для одного пакета, но пакетов много и устройств много, так что парролельно принимать данные
источник

c🦊

cleverfox 🦊 in Эликсир и Вунш
В случае с TCP {active, once} позволяет сообщить отправителю слать данные помедленнее, если ты не успеваешь их обработать (последовательно с приемом)
источник

c🦊

cleverfox 🦊 in Эликсир и Вунш
К сожалению с UDP active, once позволит только потерять часть дейтаграмм, если ты не успеваешь их вычитывать
источник

c🦊

cleverfox 🦊 in Эликсир и Вунш
Кстати, скорее всего, ты можешь из нескольких процессов читать из одного gen_udp, таким образом получится своего рода пуль воркеров
источник

#@

# @ in Эликсир и Вунш
Или же вызывать парсер-функцию из receive при получении очередного пакета?
источник

c🦊

cleverfox 🦊 in Эликсир и Вунш
# @
Или же вызывать парсер-функцию из receive при получении очередного пакета?
Этот вариант тоже вполне приемлем
источник

AP

Andrey Pavlov in Эликсир и Вунш
Или так.
источник

#@

# @ in Эликсир и Вунш
Но в итоге все равно данные нужно агрегировать в одном месте
источник

c🦊

cleverfox 🦊 in Эликсир и Вунш
Но, как я сказал выше, все сильно зависит от того, что ты хочешь сделать, с каой скоростью у тебя будут данные приходить и скол ко времени будет уходить на парсинг
источник

#@

# @ in Эликсир и Вунш
TTL у каждого пакета примерно 30 секунд, кол-во устройств может сильно варьироваться
источник

#@

# @ in Эликсир и Вунш
А что если каждый процесс будет сразу закидывать результат парсинга в базу данных?
источник

AP

Andrey Pavlov in Эликсир и Вунш
Это все очень абстрактно. Если эти данные еще дальше обрабатывать не нужно, то да ты можешь сохранить их в базу
источник

#@

# @ in Эликсир и Вунш
Агенты используются для хранения глобальных данных?
источник

ŹR

Źmićer Rubinštejn in Эликсир и Вунш
# @
Агенты используются для хранения глобальных данных?
Для чего хочешь используются
источник