Отправлять push-уведомления каждую микросекунду - PullRequest
0 голосов
/ 15 сентября 2018

У меня есть база данных MySQL, которая обновляется каждую секунду или микросекунду. используя таблицу уведомлений, я должен найти правильного пользователя для отправки push-уведомления, существует несколько типов уведомлений. поэтому не все уведомления отправляются всем пользователям. Вместо этого я должен проверить, какой пользователь подписан на какое уведомление, и на основании этого я отправляю уведомление пользователям, пока оно работает правильно, но не точно.

Моя логика программы:

Сначала получать все новые уведомления из таблицы уведомлений, которая в ожидании отправки.

$newnotification  = get_all_newnotification();

Затем обрабатываете уведомление, чтобы проверить, подписан ли кто-либо на это уведомление? если да, то отправка push этому пользователю с использованием Firebase

foreach ($newnotification as $data) {
    $findusers = mysqli($connection,"SELECT U.device_token  FROM user_notification as UN INNER JOIN user as U on U.id = UN.user_id  WHERE UN.notification_type = '{$data['type']}' ");
    $user_token = [];
    while($result = mysqli_fetch_assoc()) {
        $user_token[] = $result['device_token'];
    }

    if(count($user_token) > 0) {
        $firebase = new Firebase();
        $notification_data['title'] = 'Title here';
        $notification_data['description'] = 'Description goes here';
        $firebase->send($user_token,$notification_data);
    }
    //here I'm updating notification sent flag in table so won't get next time
}

Так что это работает, но не так, как требуется, потому что, когда вышеуказанная программа завершена, в таблицу добавляется много новых уведомлений, пользователь получит задержку уведомления от 5 до 10 минут (зависит от времени выполнения вышеуказанной программы)

Кто-нибудь знает, как отправить уведомление как можно скорее?

...