Ошибка тайм-аута 504 при отправке большого количества уведомлений с использованием обмена сообщениями Laravel и FirebasePhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка тайм-аута 504 при отправке большого количества уведомлений с использованием обмена сообщениями Laravel и Firebase

Сообщение Anonymous »

Я отправляю уведомления множеству пользователей одновременно, и это мой код:

Код: Выделить всё

public function sendNotifications($title, $body, $image)
{
$SERVER_API_KEY = "my_api_key";

$tokens = DB::select("select * from fcm_token");
$token_array = [];
for ($i = 0; $i < count($tokens); $i++) {
array_push($token_array, $tokens[$i]->token);
}

$data = [
"registration_ids" => $token_array,
"notification" => [
"title" => $title,
"body" => $body,
"image" => $image,
"sound" => "default" // required for sound on ios
],
];
$dataString = json_encode($data);

$headers = [
'Authorization: key=' . $SERVER_API_KEY,
'Content-Type: application/json',
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
$response = curl_exec($ch);
curl_close($ch);
}
Эта функция выполняется после заполнения формы администратором, который должен передать тело заголовка и изображение серверной части. После этого им необходимо дождаться завершения задачи (чтобы убедиться, что все получили уведомление). Раньше он работал как часы, но сейчас, после долгой загрузки, сервер отвечает таймаутом 504.
Я знаю, что мог бы поставить в очередь, но решит ли это проблему? Не будет ли очередь остановлена ​​из-за той же ошибки?
Я размещаю приложение на общем хостинге (lws), и мое максимальное время выполнения составляет 60 секунд и не могу его увеличить. не платя больше. Я хочу убедиться, в чем заключается проблема, прежде чем тратить больше денег.
Я пытался протестировать его всего на 100 пользователях, и он работает как часы, но мне нужно отправить его более того, поскольку количество моих пользователей превышает 4000.

Подробнее здесь: https://stackoverflow.com/questions/744 ... rebase-mes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»