IPB

Здравствуйте, гость ( Вход | Регистрация )

Важные объявления

 
Ответить в данную темуНачать новую тему
> Выстроить очередь скриптов, PHPCLI + LINUX
Ex3me
сообщение 9.10.2008, 20:36    [ Вставить ник в форму быстрого ответа ]
Сообщение #1


lamer...
****

Группа: Опытные
Сообщений: 401
Регистрация: 7.8.2007
Из: лесу
ICQ: 404554260
Пользователь №: 512
Спасибо сказали: 2 раз(а)

Дистрибутив:
Дома и на работе Ubuntu 9.10, Сервер FreeBSD 7.2, а нравится мне Arch



Репутация: -7


Написал сайт с сходными функциями youtube. Проблема стоит в очереди роликов на конвертацию.

Хотелось бы чтобы ролики поступали на конвертацую в том же порядке что и загружались. То есть по порядку.

Сначала файл передается через html форму, потом обрабатывается обычным php скриптом через php-cli

вот как выглядит построение очереди скриптов:

Код
    $str = trim($str = `ps -A | grep convert.php | awk '{print $1}'`);

// ps -A выведет список всех процессов, потом grep по именно этому процессу, и  awk '{print $1}' выведет только pid.
//тоесть выведет все pidы скриптов которые запущенны на копьютере

//потом заносим в масив все пиды

    $arr = preg_split("/[\s,]+/", $str);

//сортируем в противоположном порядке.

    rsort($arr);

//первый элемент массива будет с самым высоким пидом, а самый высокий пид это и есть этот самый скрипт. Тоесть в $pid содержится pid скрипта.

    $pid = (int) $arr[0];

//бесконечный цикл
    for (;;)
    {
    $str = trim($str = `ps -A | grep convert.php | awk '{print $1}'`);
    $arr = preg_split("/[\s,]+/", $str);
//всё тоже самое, только сортируем по возврастанию.
    asort($arr);

//nextPID будет самым меньшем pidом, поэтому он был раньше запущен чем любой другой и идёт следующим на конвертацию.

    $nextPID = (int) $arr[0];

//если этот скрипт дождался своей очереди, то он начинает выполняться иначе будет ждать еще 12 сек

    if ($nextPID==$pid)
        {
        break;
        }     
    

    sleep(12);
    }


Всё работает. только вот чето парит иногда... причем непонятно из за чего. я думаю утилита ps иногда выводит бока.

Кто как посоветует сделать очередь ? не откажусь от bash
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
Зарегистрируйтесь, чтобы скрыть этот рекламный блок.

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 18.9.2019, 10:12    


BonAppetit - кулинарные авторские фоторецепты  ITO-info