Принятие этого работает на машине Linux, я всегда обрабатывал его как это:
exec(sprintf("%s > %s 2>&1 & echo $! >> %s", $cmd, $outputfile, $pidfile));
Это запускает команду $cmd
, перенаправляет вывод команды к $outputfile
и пишет идентификатор процесса в $pidfile
.
, Который позволяет Вам легко контролировать то, что делает процесс и если он все еще работает.
function isRunning($pid){
try{
$result = shell_exec(sprintf("ps %d", $pid));
if( count(preg_split("/\n/", $result)) > 2){
return true;
}
}catch(Exception $e){}
return false;
}
Храните в обоих направлениях. Структуры могут быть установлены по-своему, и если вы ожидаете найти необработанный столбец со строкой в формате ISO, то это, вероятно, будет труднее обойтись, чем это того стоит.
Проблема наличия двух столбцов заключается в согласованности данных, но sqlite должен иметь все необходимое для работы. Версия 3.3 поддерживает проверочные ограничения и триггеры. Прочтите функции даты и времени . Вы должны иметь возможность делать то, что вам нужно, полностью в базе данных.
CREATE TABLE Table1 (jd, isotime);
CREATE TRIGGER trigger_name_1 AFTER INSERT ON Table1
BEGIN
UPDATE Table1 SET jd = julianday(isotime) WHERE rowid = last_insert_rowid();
END;
CREATE TRIGGER trigger_name_2 AFTER UPDATE OF isotime ON Table1
BEGIN
UPDATE Table1 SET jd = julianday(isotime) WHERE rowid = old.rowid;
END;
И если вы не можете делать то, что вам нужно, в базе данных, вы можете написать расширение C для выполнения необходимых функций. Таким образом, вам не нужно будет касаться фреймворка, кроме как загрузить расширение.
Юлианский день удобен для всех видов вычислений даты, но он может прилично хранить часть времени (с точными часами, минутами и секундами). Раньше я использовал как поля Юлианского дня (для дат), так и секунды от эпохи (для экземпляров datetime
), но только тогда, когда у меня были особые потребности в вычислениях (дат и соответственно раз). Я думаю, что простота форматирования даты и времени в формате ISO должна сделать их предпочтительным выбором, скажем, примерно в 97% случаев.
Потому что 2010-06-22 00:45:56
гораздо легче читать человеку, чем 2455369.5318981484
. Текстовые даты отлично подходят для выполнения специальных запросов в SQLiteSpy или SQLite Manager.
Главный недостаток, конечно же, в том, что для текстовых дат требуется 19 байт вместо 8.