Макс, имхо в пункте v3 про mimetypes не совсем явно, что это приложение, и какую строчку добавлять (по-моему не для начинающих такая задача копаться в коммитах, чтоб понять о чём речь). За make:all([load]) спасибо.
Спасибо за статью! 1. А что случится, если в очереди лежит сообщение с таймстемпом 100500 а клиент отправит таймстемп 100600 ? Сообщение навечно останется в очереди?
Может есть смысл поменять местами кейсы и обойтись без when length(Messages)? Или это мелочи уже?
3. Как человеку не работавшему с Cowboy, не очень понятно при каких обстоятельствах вызываются comet_handler:info/3 (как handle_info в gen_server?) и comet_handler:handle/2 (при новом запросе от ковбоя?) comet_handler:init/3 (при запуске процесса в пуле? не похоже..). Это какой-то behaviour? Или предполагается что с документацией по ковбою я уже знаком?
Comments 22
За make:all([load]) спасибо.
Reply
Reply
Reply
Reply
make run как-то нелогично. Почему не run.sh?
Reply
Reply
Reply
Reply
Reply
Reply
Если считаешь нужным - оформим в fprog.
Reply
1. А что случится, если в очереди лежит сообщение с таймстемпом 100500 а клиент отправит таймстемп 100600 ? Сообщение навечно останется в очереди?
2. Почему так записано?
{ok, NewTS, Messages} when length(Messages) > 0 ->
...;
{ok, NewTS, []} ->
...
Может есть смысл поменять местами кейсы и обойтись без when length(Messages)? Или это мелочи уже?
3. Как человеку не работавшему с Cowboy, не очень понятно при каких обстоятельствах вызываются comet_handler:info/3 (как handle_info в gen_server?) и comet_handler:handle/2 (при новом запросе от ковбоя?) comet_handler:init/3 (при запуске процесса в пуле? не похоже..). Это какой-то behaviour? Или предполагается что с документацией по ковбою я уже знаком?
4. Мне кажется есть смысл сделать как то так:
info({_Pid, NewTS, Messages}, Req, _) ->
handle(Req, {NewTS, Messages});
Во имя всяких там DontRepeatYourself =) Или это менее наглядно? Или можно из info перескочить в handle вернув из info какую-то "команду"?
Reply
2. Что бы явно указать возможные варианты. Любая другая фигня должна уронить нас.
3. В README.md от ковбоя это описано. info вызывается на каждое сообщение, если init вернул loop. а handle вызывается, если init вернул ok
4. Я считаю, что в данном случае это лишь вредит. Крохоборничество с DRY приводит к адским неподдерживаемым ветвлениям кода.
Reply
Как грамотно запускать на production? Чтоб output писался в файлы.
Reply
Reply
Leave a comment