ThrowIfArgumentIsNull является хорошим способом сделать ту пустую проверку, которую все мы должны сделать.
public static class Extensions
{
public static void ThrowIfArgumentIsNull(this T obj, string parameterName) where T : class
{
if (obj == null) throw new ArgumentNullException(parameterName + " not allowed to be null");
}
}
Ниже способ использовать его, и это работает над всеми классами в Вашем пространстве имен или везде, где Вы используете пространство имен в.
internal class Test
{
public Test(string input1)
{
input1.ThrowIfArgumentIsNull("input1");
}
}
нормально использовать этот код проект CodePlex.
Вы можете запустить родительский php-процесс, который разветвляет клиента с определенным интервалом. Если вам интересно изучить это как вариант, вот хорошая отправная точка: http://ca2.php.net/pcntl Хорошая вещь в том, чтобы сделать это таким образом, заключается в том, что родительский процесс может убить клиента pid, которые не заканчиваются в течение разумного промежутка времени.
Если вы ищете что-то быстрое и грязное, вы можете написать сценарий bash, чтобы довольно легко вызывать php (если вы используете Linux):
#!/bin/bash
while [ "true" ]; do
/path/to/script.php
sleep 15
done
EDIT На самом деле вам даже не нужен скрипт, bash сделает все в одной строке:
while [ "true" ]; do /path/to/script.php; sleep 15; done
PHP как язык не очень хорошо работает бесконечно. Поскольку у вас есть cron-job каждые десять минут, почему бы не выполнить задачу 60 раз, а затем выйти?
Кроме того, PHP имеет разные файлы конфигурации для CLI и для режимов apache на большинстве серверов Linux. Поэтому было бы разумно проверить файл etc / php / cli / php.ini и проверить максимальное время выполнения и ограничения памяти.
Убедитесь, что ваш исполняемый файл PHP скомпилирован для использования в качестве интерпретатора командной строки, а не исполняемого файла CGI. PHP обычно убивает скрипты, которые выполняются дольше max_execution_time
(по умолчанию 30 секунд). Исполняемые файлы CLI, однако, не налагают этого ограничения.
Дополнительная информация о CLI и CGI SAPI.
Вы можете проверить SAPI своего исполняемого файла, используя аргумент - версия
:
$ php --version
PHP 4.3.0 (cli), Copyright (c) 1997-2002 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies
Вы можете проверить свой параметр max_execution_time в файле php.ini. Я считаю, что по умолчанию 30 секунд. Как вы настроили с помощью cron, у вас, вероятно, будет несколько экземпляров скрипта, запущенного через 10 минут, если вы не добавите в скрипт некоторую логику, чтобы проверить, что сам экземпляр еще не запущен
время от времени (до того, как у вас закончится память) выходят из цикла и повторно запускаются exec ("/ usr / bin / php". ФАЙЛ );
Существует модуль PEAR для написания долго выполняющихся сценариев PHP. Но сам я им не пользовался.