2015-06-03 2 views
-1

У меня есть некоторые ограничения с моим хостом, и мои скрипты не могут работать дольше 2 или 3 секунд. Но время, которое потребуется для завершения, безусловно, увеличится по мере увеличения базы данных.Сделать скрипт PHP через некоторое время

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

Сначала я попытался использовать cURL, а затем сделал некоторые попытки с wget. Но всегда есть проблема с ожиданием ответа и тайм-аутов (например, cURL, мне просто нужно пинговать скрипт, не ждать ответа) или разрешения с сервером (функции, которые мы используем для запуска wget, такие как exec кажется, отключен на моем сервере или что-то в этом роде).

Как вы думаете, что лучше всего сделать для скрипта/вызова скрипта PHP?

+0

Это не имеет никакого смысла. Кроме того, почему вы платите деньги за хостинговую среду, которая не отвечает вашим потребностям? Вы можете получить VPS на цифровом океане или т. Д. За 5 долларов США в месяц и делать все, что захотите. – billynoah

+0

Похоже, вы перерастаете хостинг-хостинг, и вы готовы к виртуальному серверу, где вы не столкнетесь с такими ограничениями. Виртуальные серверы (также известные как «облачные серверы») начинаются от 10 до 20 долларов в месяц от таких поставщиков, как Rackspace, AWS, Digital Ocean и т. Д. – mti2935

+1

Если скрипт работает сам, это заставит исходный скрипт работать дольше двух секунды, которые будут убиты вашим хостом. Перемещайте хосты или смотрите задания cron и посмотрите, будут ли они поддерживать те, которые работают дольше 2 секунд. – Hammerstein

ответ

0

В системах/Linux Unix Я бы лично рекомендую планировать CRON JOBS продолжать работать скрипты через определенные интервалы

Может быть, это ТАК Link поможет вам

+0

, что не поможет ему, если проблема в том, сколько времени работает его сценарий, превышает лимит, установленный поставщиком. – billynoah

+0

@billynoah действительно. Я использую cron для запуска скрипта каждый час. но тогда я не могу контролировать, сколько времени потребуется, чтобы закончить работу. это будет 5 или 10 секунд в первые месяцы. но 2 или 3 минуты в год –

0

скрипты Php вообще не вызывать другие скрипты PHP , Возможно , чтобы создать фоновый процесс, как показано на рисунке here, но я не думаю, что это то, что вам нужно. Если, так вам было бы лучше использовать cron, как обсуждалось выше.

Вызов функции через каждые X секунд с одним и тем же сценарием, безусловно, возможен, но это делает противоположное тому, что вы хотите, так как это только продлит время выполнения рассматриваемого сценария.

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

Насколько я могу видеть ваши варианты:

  • Продлить директиву PHP max_execution_time, или ваш сисадмин сделать это, если они готовы
  • Пересмотрите свой сценарий так, что он завершает в течение срока
  • Перейти на новый сервер
Смежные вопросы