LINUX.ORG.RU
решено ФорумTalks

Отложенное выполнение задач. Что почитать?


0

1

Планирую наваять демона, раз в n минут запускающего ряд задач.

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

p.s. Про at, cron, event machine и ко неплохо осведомлён, использовать их - не предлагать.


Ответ на: комментарий от flareguner

В пункте 3 будет многократное «ура» под «fork me, baby!», а в пункте 4 - форк-бомба.

Нечего сказать - молчи.

daris
() автор топика
Ответ на: комментарий от daris

Если ты не можешь внятно объяснить чего хочешь - не стоит рассчитывать на понятный ответ.

flareguner
()

По крону запускай ps|grep>file, читай файл и в зависимости от выхлопа запускай/не запускай

SevikL ★★★★★
()

И другие брокеры задач. Task broker.

wolfy
()
Ответ на: комментарий от wolfy

Исходники читать - это слишком. А вот статьи об устройстве шедулеров вообще были бы в самый раз.

daris
() автор топика
Ответ на: комментарий от nu11

Есть 20 загруженных нод, нужно раз в 120 секунд собирать с каждой данные по загруженности проца, памяти, сети и т.д. И собирать не просто, а подключаться по ssh и возвращать в удобном виде ruby-приложению, которое их запустило.

Адреса нод могут меняться. Как и их число. Скриптом писать в crontab, а потом рестартить демона - это изуверство. Крон отметаем.

Удалённые ноды могут не ответить за эти 120 секунд. Но крон об этом ничего не узнает и будет продолжать забрасывать их запросами. Если дела пойдут так, мне нужно чтобы управляющее приложении знало что нода лежит и сразу позвало админа.

А так, если даже мы по крону сделаем проверку выполняемых кроном запросов (хитро как, а?), у нас всё равно будет путаница, мы не сможем адекватно анализировать данные и вовремя позвать админа.

В общем, крон недостаточно гибок.

daris
() автор топика
Ответ на: комментарий от sdio

В таком случае мне нужно будет по таймеру собирать данные с nagios :)

Вопрос о шедулере остаётся открытым.

daris
() автор топика
Ответ на: комментарий от daris

Удалённые ноды могут не ответить за эти 120 секунд. Но крон об этом ничего не узнает

и не должен. Об этом знает flock. А простенький скрипт на баше в случае таймаута позовет админа.

Скриптом писать в crontab

зачем? о_О Один раз написал скрипт и засунул в крон. Ноды можно прописать в примитивный конфиг.

В общем, крон недостаточно гибок.

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

nu11 ★★★★★
()
Ответ на: комментарий от nu11

Несколько тысяч строк скриптов на ruby. А тут подпорка в виде баша. Извращение какое-то.

Сработает, да, но скорей я напишу демона, по таймеру дёргающего задачи. Будет дёргать, следить за состоянием детишек, килять их если нужно.

Знаю что это умеет init. Знаю что demontools для этого. Но у меня никогда дружба с чужой документацией на складывалась.

daris
() автор топика
Ответ на: комментарий от daris

java+akka+amqp со стороны сервера, любой mq-клиент (хоть рубёвый) на стороне клиента.

wolfy
()

Про at, cron, event machine и ко неплохо осведомлён, использовать их - не предлагать

Знаешь куда попадают велосипедостроители после смерти, и что там с ними делают?

redixin ★★★★
()
Ответ на: комментарий от daris

Несколько тысяч строк скриптов на ruby. А тут подпорка в виде баша. Извращение какое-то.

никто не мешает и на руби написать. Просто в баше проще вызывать сторонние программы.
Хочешь писать свой велосипед - никто не запрещает

nu11 ★★★★★
()
Ответ на: комментарий от redixin

ssh? это безумие. snmp для чего придумали?

Мониторинг - лишь малая часть того, что нужно делать по крону.

daris
() автор топика
Ответ на: комментарий от redixin

Знаешь куда попадают велосипедостроители после смерти, и что там с ними делают?

Знаешь как ненавидят костылеклепателей при жизни?

daris
() автор топика
Ответ на: комментарий от daris

Удалённые ноды могут не ответить за эти 120 секунд. Но крон об этом ничего не узнает и будет продолжать забрасывать их запросами.

про локфайл уже говорили, да?... а чем не устроил?

AndreyKl ★★★★★
()
Ответ на: комментарий от daris

daris> Удалённые ноды могут не ответить за эти 120 секунд. Но крон об этом ничего не узнает и будет продолжать забрасывать их запросами

запускать команду сбора надо через timeout

timeout 100 ./get_remote_info

Если за 100 сек ./get_remote_info не отработает она будет убита и timeout вернет статус >0, следовательно можно сразу оповестить админа

sdio ★★★★★
()
Ответ на: комментарий от daris

все плагины нагиоса (тот же check_by_ssh) имеют параметр timeout, так что может оказаться удобно их использовать

sdio ★★★★★
()
Ответ на: комментарий от daris

Скриптом писать в crontab, а потом рестартить демона
рестартить демона

лолшто? man cron

ЗЫ по сабжу подумал, что тут про тасклеты

muon ★★★★
()
Ответ на: комментарий от sdio

только про нагиос никто не может точно сказать, сейчас он пойдёт за данными или через три минуты.

muon ★★★★
()
Ответ на: комментарий от muon

без нагиоса. Только плагины взять и запускать их из крона

sdio ★★★★★
()
Ответ на: комментарий от redixin

snmp для чего придумали?

Никто точно не знает, относится ли «simple» к «protocol», или же к «network» © Лимончелли

muon ★★★★
()
Ответ на: комментарий от daris

Тебе не надо раз в 120 секунд запускать. Тебе надо держать очередь задач из которой воркеры разгребают задачи. После исполнения задача вновь записывается в очередь с новым start time. В этом случае у тебя вообще не будет проблем c повторным исполнением.

Reset ★★★★★
()
Ответ на: комментарий от Reset

Именно то, что нужно. Спасибо что сэкономил моё время.

daris
() автор топика
Ответ на: комментарий от daris

xml-rpc via http + wget(--timeout, --dns-timeout, --connect-timeout, --read-timeout). Все велосипеды уже изобретены :)

Jetty ★★★★★
()
Ответ на: комментарий от daris

И кстати... снмп в руки и вперед :) Оно как рад для таких задач и предназначено.

Jetty ★★★★★
()
Ответ на: комментарий от Reset

Будут :) например такой подход плохо работает когда рисуешь ррдами графики. Там гораздо важнее соблюдать переодичность данных, чем просто их получение.

Jetty ★★★★★
()

Но знать этого нельзя

ты что-то делаешь неправильно.

true_admin ★★★★★
()

почитай этикету бутылки - выпей и забей(отложи) на задачу )
демона зовут алкоголь

x905 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.