Is it not possible to have a code in the background who will be called every 24h? [closed]
Невозможно ли иметь в фоновом режиме код, который будет вызываться каждые 24 часа?
В своем приложении я делаю ранжирование баллов пользователя. Однако я подсчитываю свой рейтинг только каждые 24 часа. Моя проблема в том, что я не знаю, куда мне следует поместить код вычисления, не беспокоя пользователя.
Разве невозможно иметь код в "фоновом режиме", который будет вызываться каждые 24 часа? Потому что на данный момент код для вычисления вызывается, когда первый пользователь использует мое приложение через 24 часа, но затем пользователю приходится подождать несколько минут, пока вычисление не закончится. Мои данные каждого пользователя сохраняются в Firebase.
Заранее спасибо!
Переведено автоматически
Ответ 1
Редактировать 22 апреля 2019 г.:
Недавно Google Cloud выпустила Cloud Scheduler, который позволяет вам планировать HTTP-запросы или сообщения Cloud Pub / Sub для развертываемых вами функций.
Этот новый сервис также очень хорошо работает с Firebase, и для этого я рекомендую вам прочитать отличную статью, написанную Дугом Стивенсоном в блоге Firebase под названием Планирование облачных функций для Firebase (cron).
Разве невозможно иметь код в "фоновом режиме", который будет вызываться каждые 24 часа?
Да, это возможно. В этом случае вам следует написать функцию в Cloud Functions для Firebase и вызывать ее всякий раз, когда вам это необходимо. Если вы хотите, чтобы его запускали каждые 24 часа, воспользуйтесь сервисом follwing:
Это означает, что вы можете выполнить это конкретное вычисление, даже если пользователь закрыл приложение. Пример кода смотрите в ответе Фрэнка ван Пуффелена из следующего поста.:
В вашем случае я бы рекомендовал использовать стандартные инструменты Android для планирования заданий. Вы можете попробовать использовать новый WorkManager или просто JobScheduler. Также вы можете попробовать покопаться в этой статье, чтобы получить больше информации.