Код: Выделить всё
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);
}
Я знаю, что мог бы поставить в очередь, но решит ли это проблему? Не будет ли очередь остановлена из-за той же ошибки?
Я размещаю приложение на общем хостинге (lws), и мое максимальное время выполнения составляет 60 секунд и не могу его увеличить. не платя больше. Я хочу убедиться, в чем заключается проблема, прежде чем тратить больше денег.
Я пытался протестировать его всего на 100 пользователях, и он работает как часы, но мне нужно отправить его более того, поскольку количество моих пользователей превышает 4000.
Подробнее здесь: https://stackoverflow.com/questions/744 ... rebase-mes