Jestem zakładając te liczby są w bazie danych, jeśli tak, należy dodać nowa kolumna zatytułowana isSent (lub cokolwiek innego).
Ten napisany przez ciebie akapit powinien znajdować się w kolejce i być może być wykonywany noc/tydzień/w razie potrzeby. Jeśli nie masz konkretnego powodu, nie należy go wykonywać zbiorczo na żądanie. Możesz nawet dodać kolumnę do bazy danych, aby zobaczyć, kiedy był ostatnio sprawdzany, więc jeśli liczba nie została zaznaczona co najmniej X dni, możesz sprawdzić tę liczbę na żądanie.
Przetwarzanie danych polega na sprawdzeniu numeru telefonu komórkowego typu (np CDMA), przypisywanie unikatowych identyfikatorów do wszystkich numerów do dalszego odwoływania, sprawdź sieciowych/kraju unikalnych opłat itp
ale wciąż prowadzi cię z powrotem do tego samego pytania, jak to zrobić dla 50 000 liczb na raz. Ponieważ wspomniałeś o pracach crona, zakładam, że masz dostęp do serwera SSH, co oznacza, że nie potrzebujesz przeglądarki. Te crona mogą być wykonywane za pomocą wiersza poleceń, takich jak:
/usr/bin/php /home/username/example.com/myscript.php
Moja rada jest taka, aby przetworzyć 1000 numerów w czasie każdego 10 minut przez cron i do czasu, jak długo to trwa, a następnie zapisz go do DB. Ponieważ używasz zadania cron, nie wydaje się, że są to wiadomości SMS o czasie ważności, więc można je rozłożyć. Kiedy już wiesz, ile czasu zajmie uruchomienie tego skryptu 50 razy (50 * 1000 = 50k), możesz zaktualizować swoje zadanie cron, aby działało częściej/rzadziej.
$time_start = microtime(true);
set_time_limit(0);
function doSendSMS($phoneNum, $msg, $blah);
$time_end = microtime(true);
$time = $time_end - $time_start;
saveTimeRequiredToSendMessagesInDB($time);
Również można zauważyli set_time_limit (0), to powie PHP nie czas, po domyślnych 30 sekund. Jeśli możesz zmodyfikować plik PHP.ini, nie musisz wpisywać tego wiersza kodu. Nawet jeśli jesteś w stanie edytować plik PHP.ini, nadal nie zalecamy zmiany tej funkcji, ponieważ możesz chcieć, aby inne strony przestały działać.
http://php.net/manual/en/function.set-time-limit.php
Wspaniała odpowiedź, dziękuję bardzo. // Kontynuuj, nawet jeśli użytkownik ściąga wtyczkę (bardzo zabawne) – elf1984
@Christian Rozwiązanie działa lepiej na FireFox i IE, ale Google Chrome zamarzł, czy nie ma innego wyjścia? – elf1984
Safari Webkit (również używa din Chrome) ma pewne problemy z funkcją postępu PHP. Znalazłem poprawkę, wrócę do ciebie z tym ... ** Edycja: ** Naprawiono. – Christian