Size: a a a

2020 July 22

AB

Alexander Bogosyan in ErlangRus
Vladimir Sekisov
при send_after тоже прилетит,
кроме формата, эти функции
имеют один и тот же эффект
разве?
erlang:send_after(Time, Dest, Msg, Options) -> TimerRef
Starts a timer. When the timer expires, the message Msg is sent to the process identified by Dest.
источник

V

Vasilii Demidenok in ErlangRus
1> erlang:start_timer(1, self(), {msg}).
#Ref<0.1200979003.1574699009.13026>
2> flush().
Shell got {timeout,#Ref<0.1200979003.1574699009.13026>,{msg}}
ok
3> erlang:send_after(1, self(), {msg}).
#Ref<0.1200979003.1574699009.13047>
4> flush().                            
Shell got {msg}
источник

V

Vasilii Demidenok in ErlangRus
/me кстати перепутал два этих вызова, мне как раз нравится тот что включает реф
источник

AB

Alexander Bogosyan in ErlangRus
ну да, я так и написал, тот который без ref хорош для one-shot штук, которые не надо cancel-ить
источник

VS

Vladimir Sekisov in ErlangRus
Alexander Bogosyan
разве?
erlang:send_after(Time, Dest, Msg, Options) -> TimerRef
Starts a timer. When the timer expires, the message Msg is sent to the process identified by Dest.
э, да, невнимательно исходный пост прочитал,
извиняюсь,
замучен чтением стандартов 3GPP.
источник

DF

Denis Fakhrtdinov in ErlangRus
@alex_sherman только не надо пользоваться timer:send_after.
источник

DF

Denis Fakhrtdinov in ErlangRus
источник

DF

Denis Fakhrtdinov in ErlangRus
Вообще не понимаю почему эти функции ещё не задепрекейтили.
источник

AS

Alex Sherman in ErlangRus
Denis Fakhrtdinov
@alex_sherman только не надо пользоваться timer:send_after.
у меня есть куски легаси, использующие это
в общем, теперь понятно, почему время от времени у меня приложение перестает писать логи использования памяти =)
источник

AS

Alex Sherman in ErlangRus
буду переделывать, конечно
источник

VS

Vladimir Sekisov in ErlangRus
ну тут надо миллионов несколько таймеров в timer
запихнуть и трешить его десятком тысяч обращений в
секунду, чтобы он так заглох
источник

ML

Maksim Lapshin in ErlangRus
Vladimir Sekisov
ну тут надо миллионов несколько таймеров в timer
запихнуть и трешить его десятком тысяч обращений в
секунду, чтобы он так заглох
звучит как вызов
источник

VS

Vladimir Sekisov in ErlangRus
Maksim Lapshin
звучит как вызов
timer:_send_after использовать вообще нехорошо,
но задолбить сервер timer-а, чтобы он начал секундами
лагать - это надо очень постараться.
источник

TT

Taras 🦀 Taraskin in ErlangRus
Joe's paper в тему чата :)
03.05.2014
источник
2020 July 23

A

Andrey in ErlangRus
Denis Fakhrtdinov
Вообще не понимаю почему эти функции ещё не задепрекейтили.
а может и не надо? Есть например Idle time у залогиненных юзеров. Есть  процедура их выхода из системы. В случае erlang:send_after мы будем кидать месседж некому генсерверу, который будет разгребать эти сообщения. И если юзеры протухнут разово. То можем получить бутылочное горлышко в нем. В случае же timer:apply_after имеем отдельный процесс, который выполнит нужный метод в нужное время.
источник

DF

Denis Fakhrtdinov in ErlangRus
Не понимаю причём тут erlang:send_after. Там в сигнатуре есть пид процесса, который получит сообщение.
источник

DF

Denis Fakhrtdinov in ErlangRus
В случае с timer:send_after этот боттлнек как раз есть.
источник

A

Andrey in ErlangRus
я про apply_after
источник

A

Andrey in ErlangRus
в любом случае если пид предполгается разный для каждого юзера эти процессы где-то надо поднять
источник

AK

Aleksey Kluchnikov in ErlangRus
Еще можно в стейт положить так называемый Until, в котором хранить время и команду таймера. И в каждой редукции ген сервера высчитывать из этого времени Timeout
источник