URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 94794
[ Назад ]

Исходное сообщение
"Oчередь задач"

Отправлено fa , 28-Июн-13 13:21 
Всем привет.

Возникла необходимость в софте, реализующем очередь задач. Есть что-нибудь не слишком тяжеловесное?

Вот как я себе это представляю. Несколько процессов добавляют задачи в очередь. Эти задачи выполняются в порядке добавления. Пока предыдущее задание не выполнено, следующее не запускается.

Если вдруг окажется, что софта такого типа навалом, подскажите что-нибудь, что есть в пакетах CentOS.

Заранее спасибо.


Содержание

Сообщения в этом обсуждении
"Oчередь задач"
Отправлено Dno , 28-Июн-13 13:55 
По-моему, это на sh пишется за 20 минут любой обезьяной:
файл-список задач, переменная-флаг что чего-то выполняется, анализ errorlevel выполненной задачи.

"Oчередь задач"
Отправлено fa , 28-Июн-13 14:34 
Я вот тоже думал, что любой. Написал. Теперь оно обрасло неимоверным количеством костылей, на которые я боюсь даже дышать.

В файл-список задач могут писать разные процессы одновременно. Значит его нужно лочить/анлочить. Если какой-то процесс не снял лок, больше задачи не поступают. Значит нужно придумывать какой-то мониторинг для принудительного снятия лока, если процесс, который его установил, упал. Нужно вести какой-то лог, где будет видно, когда какие задачи отработали, а какие - нет (например, из-за того, что не дождались освобождения лока).

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

Ко всему вышесказанному надо-бы добавить, что я не уверен, что я уже наступил на все типичные грабли многозадачности и теории очередей. Даже больше, уверен, что новые грабли еще всплывут. Вот и ищу какой-нибудь готовый софт, где об этих граблях уже подумали.



"Oчередь задач"
Отправлено Dno , 28-Июн-13 14:57 
> Ко всему вышесказанному надо-бы добавить, что я не уверен, что я уже
> наступил на все типичные грабли многозадачности и теории очередей. Даже больше,
> уверен, что новые грабли еще всплывут. Вот и ищу какой-нибудь готовый
> софт, где об этих граблях уже подумали.

Ну не знаю, зато понятно что происходит когда сам напишешь.

Гуглите по словам: linux queue run tasks
Вот например что-то:
http://archive09.linux.com/feature/143901


"Oчередь задач"
Отправлено lavr , 28-Июн-13 15:12 
> Всем привет.
> Возникла необходимость в софте, реализующем очередь задач. Есть что-нибудь не слишком тяжеловесное?
> Вот как я себе это представляю. Несколько процессов добавляют задачи в очередь.
> Эти задачи выполняются в порядке добавления. Пока предыдущее задание не выполнено,
> следующее не запускается.
> Если вдруг окажется, что софта такого типа навалом, подскажите что-нибудь, что есть
> в пакетах CentOS.

про пакеты CentOS не знаю, а Вам нужно поискать:

"linux batch queue system"
"linux queue system"
"linux simple queue system"

> Заранее спасибо.

Разумеется такой софт есть и он ориентирован для использования в вычислительных кластерах
и под распределенные вычисления: системы пакетного вычисления / batch queue system
или проще батч системы


"Oчередь задач"
Отправлено Sabakwaka , 29-Июн-13 01:09 
> Заранее спасибо.

Только так:
http://habrahabr.ru/post/149694/


"Oчередь задач"
Отправлено PavelR , 29-Июн-13 08:07 
> Всем привет.
> Возникла необходимость в софте, реализующем очередь задач. Есть что-нибудь не слишком тяжеловесное?
> Вот как я себе это представляю. Несколько процессов добавляют задачи в очередь.
> Эти задачи выполняются в порядке добавления. Пока предыдущее задание не выполнено,
> следующее не запускается.
> Если вдруг окажется, что софта такого типа навалом, подскажите что-нибудь, что есть
> в пакетах CentOS.
> Заранее спасибо.

http://gearman.org/‎ http://habrahabr.ru/post/123451/ ?


"Oчередь задач"
Отправлено pavlinux , 01-Июл-13 04:16 
Можно я немного поднасру?!

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