Установка лимита времени выполнения скрипта

//This is an optimization. We assume than no step can take more than one year.
if($time_limit > 0)
$end_time = time() + $time_limit;
else
$end_time = time() + 365*24*3600; // One year


Взято из 1С-Битрикс (из класса разбора CommerceML).
+79
22 июля 2010, 12:24
6
Mexos 3,4

комментарии (53)

+3
maaad #
Nnnnice
+1
sunswordred #
В юморе не откажешь ребятам)
+5
aisergeev #
Это вам кажется юмором, а ребята серьёзно работают =)
+3
magnit #
и зарабатывают
НЛО прилетело и опубликовало эту надпись здесь
+7
andreyu #
А вчерашнюю дату определяют так:
Code:
: —
: void get_tomorrow_date( struct timeval *date )
: {
: sleep( -86400 ); // — 60 * 60 * 24
: gettimeofday( date, 0 );
: }
: —
+3
widowmaker #
Это не вчерашняя дата, это машина времени!
0
andreyu #
Ну если бы вместо gettimeofday() было settimeandday(), то была бы машина времени.
+6
widowmaker #
Если придираться к названию, то у вас точно не вчерашняя дата.
+10
nsinreal #
Нужно вот так
: —
: void get_yesterday_date( struct timeval *date )
: {
: int ydate=gettimeofday( date, 0 );
: sleep( 86400 ); // — 60 * 60 * 24;
: }
: —
0
AxisPod #
Зарабатывают на говнокоде.
–20
mekegi #
<зануда>
  $end_time = ($time_limit > 0) ? time() + $time_limit : time() + 365*24*3600;
</зануда>
+19
ozon #
$end_time = time() + ($time_limit > 0? $time_limit: 365*24*3600)
+12
death_claw #
$end_time = time() + ($time_limit || 365*24*3600)
+8
wpm1 #
Остановитесь!
+13
gagzilla #
пока никто ничего не поделил на ноль — остановки не будет! Прыгайте на ходу!
0
wpm1 #
ну, чито же, можно $end_time = $time_limit?time():strtotime('+1 year');
+18
w999d #
$end_time = strtotime($time_limit?'now':'+1 year');
–1
wpm1 #
о, зачетно :)
+2
dohlik #
Могу ошибаться, но вроде как Вы потеряли в итоге значимость параметра $time_limit… Как и предыдущий оптимизатор.
–1
wpm1 #
а в чем сомнения? php.net/manual/en/function.strtotime.php
+1
dohlik #
Я имел в виду, что в Вашем варианте каким бы ни было значение $time_limit (большее нуля), оно не будет влиять на конечный результат — будет получено значение time().
0
wpm1 #
вы правы
+6
Letum #
Неконец-то стал учитываться високосный год!
–2
w999d #
$end_time=time()+$time_limit||31536000
0
w999d #
черт, оплошал
–2
FloppyFormator #
$time_limit ||= 365 * 24 * 3600;
+1
ArtemS #
Работать не будет, $time_limit || 365*24*3600 даст true => 1
0
egorinsk #
Ну, в 5.3 можно написать $time_limit ?: 365*24*3600
0
romy4 #
вобще-то такой код ничего правильного не покажет
($time_limit || 365*24*3600) всегда вернёт 1
итогом будет time() + 1;
+18
yul #
да че вы заморачиваетесь, сказали год — значит год…
sleep(365*24*3600);
+2
wpm1 #
Они вообще там колоссальную базу говнокода создали, поэтому будет невозможно что-то изменить к лучшему в нем. Можно только переписать и назвать новый продукт старым именем.
0
psman #
Пробовали, 8-ка такая же :)
+9
lehha #
тоже где-то было:

if ( false ) die(" omg!!!");
else {

}

НЛО прилетело и опубликовало эту надпись здесь
+4
blackray #
полно, но это же хваленный Битрикс!
+1
Quiz #
В Битриксе и не такое можно найти…
+1
babarun #
зато читабельно
+1
Andrey_Rogovsky #
Битриксоиды дают неплохие откаты за внедрение этой говноцмс
+1
nonemos #
А какая из наших коммерческих cms обходится без подобного?
0
Kirpichtion #
Консистенция «подобного» в разных cms разная.
+3
yuretsz #
Нормальная такая оптимизация, теперь скрипты отрабатывают не больше года.
+4
Spree #
Скажи файл, в котором находится этот код
+3
Mexos #
Здесь: bitrix/modules/iblock/classes/general/cml2.php
0
Abductio #
Какая версия битрикса?
0
Mexos #
По-моему 8 с чем-то…
0
Abductio #
Ну это уже не актуально, сейчас 9 и этих строк там уже нет

0
Mexos #
И как вам работается там в Битриксе? Нравится?
+1
Abductio #
В битриксе не работаю, но разрабатываю на битриксе уже 3 года.

Говнокода полно, а где его нет?

Система как система, зарабатывать деньги удается вполне нормальные.

Особенно с маркетингом битрикса который задавил все остальные CMS на php это лучший вариант из CMS.

А если не CMS то фреймворк а это уже другая история.

PS. Битрикс не защищаю, не фанатею от него и тп. Хорошо знаю и умею им пользоваться и только.
–1
burunduk2 #
кошерный солюшн
+1
denis_test #
Это не установка лимита времени.
Ветка с годом предполагает, что лимит не установлен. Год — это условно бесконечно большое число.
Почему взят год, а не 9999999? Видимо, всё же фан :)
+2
mihmig #
Осторожнее, могут засудить за нелегальное распространение «интеллектуальной» собственности!
0
art008 #
Пока вы выдрачиваете свой код и чужой критикуете, парни сделали хороший бизнес, ща конечно же минусов наполучаю, потому что не с «голодным народом» :)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.