Size: a a a

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

2018 May 03

ML

Maksim Lapshin in Эликсир и Вунш
Те вопрос привычки во многом
источник
2018 May 05

ДМ

Дмитрий Макаренко in Эликсир и Вунш
ping -t
источник

SV

Stas Versilov in Эликсир и Вунш
источник
2018 May 07

AK

Alexander Kulikov in Эликсир и Вунш
Привет, всем
Помогите с фильтрацией списка, плз

исходный:
[
%{value1: 100, value2: 0, value3: 0, date: «2018-05-01 00:00:00»},
%{value1: 100, value2: 10, value3: 0, date: «2018-05-01 00:00:01»},
%{value1: 101, value2: 10, value3: 0, date: «2018-05-01 00:00:02»},
%{value1: 101, value2: 15, value3: 0, date: «2018-05-01 01:00:03»},
%{value1: 101, value2: 15, value3: 1000, date: «2018-05-01 02:00:04»},
%{value1: 103, value2: 15, value3: 1000, date: «2018-05-01 05:00:05»},
%{value1: 103, value2: 15, value3: 1001, date: «2018-05-01 05:00:06»},
%{value1: 104, value2: 15, value3: 1001, date: «2018-05-01 06:00:07»},
%{value1: 104, value2: 17, value3: 1001, date: «2018-05-01 06:00:08»},
%{value1: 107, value2: 17, value3: 1001, date: «2018-05-01 06:00:09»}
]

Нужно чтоб в нем остались последнии записи из каждого часа

[
%{value1: 101, value2: 10, value3: 0, date: «2018-05-01 00:00:02»},
%{value1: 101, value2: 15, value3: 0, date: «2018-05-01 01:00:03»},
%{value1: 101, value2: 15, value3: 1000, date: «2018-05-01 02:00:04»},
%{value1: 103, value2: 15, value3: 1001, date: «2018-05-01 05:00:06»},
%{value1: 107, value2: 17, value3: 1001, date: «2018-05-01 06:00:09»}
]
источник

DS

Dmitry Shpagin in Эликсир и Вунш
Привет, можно решить с помощью Enum.group_by, Enum.map, Enum.sort  и List.last
источник

ME

Marsel Etsamoe in Эликсир и Вунш
в лоб - Enum.group_by с отсечением минут, потом в каждой отдельной пачке сортируешь по date и максимум
источник

ME

Marsel Etsamoe in Эликсир и Вунш
как и сказали выше)
источник

AK

Alexander Kulikov in Эликсир и Вунш
ок, буду пробовать
источник

NV

Nikolai Vasilenko in Эликсир и Вунш
list
|> Enum.reduce(%{}, fn %{date: date} = map, acc ->
 {:ok, time, _} = DateTime.from_iso8601(date <> "Z")
 Map.put(acc, %{time | minute: 0, second: 0}, map)
end)
|> Map.values()


не?
источник

NV

Nikolai Vasilenko in Эликсир и Вунш
предполагается, что список отсортирован. если нет, но put надо в кейс со сравнением обернуть.
источник

AK

Alexander Kulikov in Эликсир и Вунш
да, то что нужно, спасибо
источник

M

Moi_nik in Эликсир и Вунш
Господа подскажите, где почитать про дебаг в фениксе праем?
источник

ME

Marsel Etsamoe in Эликсир и Вунш
Вероятно я хочу странного, но можно ли в связке GenStage Producer -> Consumer заставить потребителя сделать sleep на некоторое время, если у продюсера кончились данные для обработки? я пробовал так:
в продюсере в handle_demand(demand, []) если выборка данных пустая, то возвращаю {:noreply, [], []}.
в воркере такое добавил:
  def handle_events([], _from, db_pid) do
   Logger.info "next_pack empty, wait"
   :timer.sleep 5_000
   {:noreply, [], db_pid}
 end

Но на деле продюсер возвращает :noreply, и потом ничего не происходит, как будто в воркер и не попадает
источник

TF

Terry Filch in Эликсир и Вунш
[Перевод] Можно ли осознанно отказаться от функционального программирования? https://u.tmtm.ru/MXNpP
источник

TT

Taras 🦀 Taraskin in Эликсир и Вунш
они там совсем ебобо?))
источник

АП

Артем Паньков in Эликсир и Вунш
Marsel Etsamoe
Вероятно я хочу странного, но можно ли в связке GenStage Producer -> Consumer заставить потребителя сделать sleep на некоторое время, если у продюсера кончились данные для обработки? я пробовал так:
в продюсере в handle_demand(demand, []) если выборка данных пустая, то возвращаю {:noreply, [], []}.
в воркере такое добавил:
  def handle_events([], _from, db_pid) do
   Logger.info "next_pack empty, wait"
   :timer.sleep 5_000
   {:noreply, [], db_pid}
 end

Но на деле продюсер возвращает :noreply, и потом ничего не происходит, как будто в воркер и не попадает
зачем?
источник

🐱

🐱 Rough Cat in Эликсир и Вунш
Taras 🦀 Taraskin
они там совсем ебобо?))
Прочитай внимательно статью
источник

ME

Marsel Etsamoe in Эликсир и Вунш
Чтобы типа ограничить частоту походов продюсера в базу. Да, знаю что такое можно сделать с помощью генсервера
источник

AF

Aleksandr Fomin in Эликсир и Вунш
Marsel Etsamoe
Вероятно я хочу странного, но можно ли в связке GenStage Producer -> Consumer заставить потребителя сделать sleep на некоторое время, если у продюсера кончились данные для обработки? я пробовал так:
в продюсере в handle_demand(demand, []) если выборка данных пустая, то возвращаю {:noreply, [], []}.
в воркере такое добавил:
  def handle_events([], _from, db_pid) do
   Logger.info "next_pack empty, wait"
   :timer.sleep 5_000
   {:noreply, [], db_pid}
 end

Но на деле продюсер возвращает :noreply, и потом ничего не происходит, как будто в воркер и не попадает
В таком подходе на сколько я помню нужно ставить таймер на повторный запрос продюсеру на получение данных, потому что он сам тебе не пихнет их
источник

ME

Marsel Etsamoe in Эликсир и Вунш
Aleksandr Fomin
В таком подходе на сколько я помню нужно ставить таймер на повторный запрос продюсеру на получение данных, потому что он сам тебе не пихнет их
Руками отправить handle_call?
источник