Lead Software Engineer в Work.ua
  • Как делать пуш-уведомления в мобильном приложении и зачем

    А там точно надо было поднимать http1 соединение каждый раз, по сокету оно не пашет? Кроме http никаких api нет?

    Из-за того что мы делаем отправку пуша в воркере, соединение с Firebase открывается при первой отправке пуша и не закрывается все время жизни воркера, которое регулируется 2 парраметрами. временем и количеством отправок.

    Підтримав: Микола Сердюк
  • Как делать пуш-уведомления в мобильном приложении и зачем

    А что мешало запараллелить процесс?

    Все и так работает параллельно. Для первого варианта у нас было пятнадцать воркеров, на разных серверах, который занимались отправкой пушей в Firebase. После внедрения подхода по сбору пушей в пачки, нам стало достаточно трех воркеров.

  • Как делать пуш-уведомления в мобильном приложении и зачем

    Все еще не понимаю, чем именно помог бы этот сервис?

    вирішення проблем з чергами на відправку

    Да вроде не решает. Нам все так же нужно собирать пачки, перед отправкой данных в этот сервис. А поэтому нам все равно пришлось бы переходить на supervisord

    обробку помилок

    Мы хотим сами обрабатывать ошибки, для того чтобы иметь возможность удаля невалидные токены из хранилища

    підтримка Firebase + APN

    Сам Firebase с этим вроде как справляется

    Остаются только ретраи. Но ставить и поддерживать для этого отдельный сервис нецелесообразно.

  • Как делать пуш-уведомления в мобильном приложении и зачем

    Я просмотрел предложенную вами библиотеку по диагонали и не понял как именно она должна была нам помочь?
    Основная мысль — это то что мы кладем по одному пушу в очередь, а дальше выбираем из нее данные, собираем в пачки и отправляем в сторонний сервис(в нашем случае Firebase), который уже отправляет пуши на устройства.
    Как я вижу, вы предложили альтернативу Firebase, но не способ как можно собирать пуши в пачки перед отправкой.
    В двух словах о проблеме которую мы решали: мы так быстро просчитывали данные для пушей и так медленно их отправляли(потому что слали по одному), что задержка между просчетом данных и фактической отправкой пуше с этими данными могла достигать 10 минут, что в нашем случае неприемлемо.