[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Cron и время выполнения скрипта
leray
Возникли некоторые трудности с выполнением скриптов по крону.

1. В расписание добавлен скрипт,который проверяет каждую запись из бд. Проверка одной записи занимает максимум 15 секунд,записей около 500

max_execution_time =30 сек
set_time_limit(0); даёт лишь доп 30 сек( скрипт 1минуту выполняется и дохнет)


посоветуйте каким образом можно проверить все 500 записей


2. если после проверки записи каждый раз вызывать set_time_limit(25); то будет ли эффект? или можно только 1 раз?



Спустя 3 минуты, 15 секунд (19.06.2009 - 19:04) glock18 написал(а):
Цитата
Проверка одной записи занимает максимум 15 секунд


почему так долго?

Цитата
set_time_limit(0); даёт лишь доп 30 сек( скрипт 1минуту выполняется и дохнет)


у хостера может быть ограничение установлено.

в чем заключается проверка? на мой взгляд, она должна занимать в 1000 раз меньше времени из расчета на запись.

Спустя 43 секунды (19.06.2009 - 19:04) kirik написал(а):
Цитата (leray @ 19.06.2009 - 11:00)
Проверка одной записи занимает максимум 15 секунд

Что за? Там у тебя что, происходит проверка контрольной суммы DVD диска, который записан в поле БД?

set_time_limit(0); делает выполнение скрипта неограниченным по времени. Изменение этой опции может банить хостер. Но я тебе настоятельно посоветую пересмотреть 15-ти секундную проверку записи..

Спустя 44 секунды (19.06.2009 - 19:05) kirik написал(а):
glock18 шустрый smile.gif

Спустя 1 минута, 14 секунд (19.06.2009 - 19:06) glock18 написал(а):
kirik, ты тоже smile.gif мы тут с тобой одновременно одно и то же постим, как я посмотрю сейчас smile.gif

Спустя 1 минута, 15 секунд (19.06.2009 - 19:08) leray написал(а):
)))
записи - содержат прокси
проверка - проверка прокси(таймаут 15сек)

п.с. оперативно, однако)

скорее всего так и сделано у хостера,но какие у меня есть альтернативы,чтобы можно было проверить все прокси? ))

Спустя 2 минуты, 17 секунд (19.06.2009 - 19:10) glock18 написал(а):
даа... вот в такие моменты задумываешься о всяких асинхронных запросах и многопоточности... smile.gif в C это было бы довольно просто, а вот в php. я где видел реализацию многопоточности. советую покопать в этом направлении тогда. или поискать что-нибудь про асинхронные запросы в php. я, к сожалению, никогда их не использовал и не видел в php, но мало ли? в принципе, вещь очень нужная и полезная.

я тут погуглил... попробуйте SOAP. может он подойдет?

Спустя 4 минуты, 5 секунд (19.06.2009 - 19:14) leray написал(а):
Цитата (glock18 @ 19.06.2009 - 16:10)
даа... вот в такие моменты задумываешься о всяких асинхронных запросах и многопоточности... smile.gif в C это было бы довольно просто, а вот в php. я где видел реализацию многопоточности. советую покопать в этом направлении тогда. или поискать что-нибудь про асинхронные запросы в php. я, к сожалению, никогда их не использовал и не видел в php, но мало ли? в принципе, вещь очень нужная и полезная.

тем не менее проблема с временем останеться, с 200-300 потоками наврятли хостер будет рад


пошёл гуглить и я biggrin.gif biggrin.gif

Спустя 57 секунд (19.06.2009 - 19:15) kirik написал(а):
Цитата (glock18 @ 19.06.2009 - 11:10)
я где видел реализацию многопоточности. советую покопать в этом направлении тогда. или поискать что-нибудь про асинхронные запросы в php

Про многопоточность можно тут посмотреть. А по данной теме.. Я бы использовал для проверки cURL и тогда с ним наверное можно использовать curl_multi_init(), но не уверен.

Спустя 2 минуты, 58 секунд (19.06.2009 - 19:18) glock18 написал(а):
Цитата
тем не менее проблема с временем останеться, с 200-300 потоками наврятли хостер будет рад


ну потоки - это один скрипт.

а вот что я мог неправильно понять, так это то, что я решил, что проверка проходит не на твоем хосте. то есть ты просто отправляешь запрос куда-то (точно не знаю как прокси проверяются). его кто-то обрабатывает или еще чего-то с ним делают. и тебе посылают ответ. так? или все таки обработка на твоем же хосте?

Спустя 33 минуты, 39 секунд (19.06.2009 - 19:52) leray написал(а):
Цитата (glock18 @ 19.06.2009 - 16:18)
Цитата
тем не менее проблема с временем останеться, с 200-300 потоками наврятли хостер будет рад


ну потоки - это один скрипт.

а вот что я мог неправильно понять, так это то, что я решил, что проверка проходит не на твоем хосте. то есть ты просто отправляешь запрос куда-то (точно не знаю как прокси проверяются). его кто-то обрабатывает или еще чего-то с ним делают. и тебе посылают ответ. так? или все таки обработка на твоем же хосте?

на моём же хосте,мой же скрипт через cUrl и проверяет)

Спустя 5 минут, 45 секунд (19.06.2009 - 19:57) leray написал(а):
а есть ли альтернативы так,чтобы поочерёдно проводилась проверка прокси?

к примеру,такой вариант

запускается скрипт, проверяет 1 проксю вызывает себя снова,опять проверяют следующую проксю и вызывает себя ещё раз
и так до конца
только с условием,чтобы на каждое выполнение скрипта отводилось 30сек,
первый запуск -30с, второй запуск 30с,и т.к. далее

и сообственно вопрос,как из выполняющегося скрипта,вызвать другой скрипт,т.к. чтобы ему дались новые 30секунд для своего завершения?

Спустя 10 минут, 44 секунды (19.06.2009 - 20:08) kirik написал(а):
Во, нашел. Неплохой выход в твоей ситуации.

Спустя 4 минуты, 14 секунд (19.06.2009 - 20:12) leray написал(а):
Цитата (kirik @ 19.06.2009 - 17:08)
Во, нашел. Неплохой выход в твоей ситуации.

мерси) попробую

печально,после теста выяснил,что если выполняется крон задача, header() (location,redirect) не переадресовывают на новую страницу, зато в браузере всё окей

снова вернулся в каменный век, есть ещё варианты,как вызвать выполнение нового скрипта,так чтобы для нового скрипта отводилось ещё 30сек? + пригодное для использование в кроне

Спустя 1 день, 1 минута, 37 секунд (20.06.2009 - 20:14) Guest написал(а):
мб ещё идейки есть? huh.gif

Спустя 1 час, 11 минут, 10 секунд (20.06.2009 - 21:25) kirik написал(а):
Может тебе проще будет использовать не php в данном случае? Написать bash скрипт, и запускать его (если хостер не против).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.