Как запретить кому-либо ставить работу Autosys на лед

Я сталкиваюсь со сценарием, в котором у меня есть автоматическое задание A. А задания B, C, D зависят от A. Когда мы сохраняем задание A на льду, B,C,D терпят неудачу.

У нас было несколько случаев, когда А по ошибке держали на льду.

Есть ли какой-нибудь способ, которым мы можем ограничить работу A от попадания на лед?

Мне отчаянно нужно избегать подобных инцидентов в будущем.

3 ответа

Что именно вы хотите сделать? Смысл этого в том, чтобы (1) иметь возможность периодически останавливать работу JobA, а также (2) избегать ситуации, когда вы забыли повторно включить JobA? И нужно ли вам также предотвращать выполнение заданий B/C/D без запуска jobA сразу же.

Если так, то я бы предложил:

  1. ты не кладешь jobA на лед. вместо этого добавьте условие в JobA к значению переменной autosys, которое вы установили в Y, когда хотите "приостановить" работу, например
    условие: v(var_disable_jobA)!="Y"

    Я предпочитаю отрицательную (!=) Проверку, потому что только установка значения Y приведет к остановке работы. Использование переменной также делает все зависимые задания приостановленными, предполагая, что это то, что вы хотите.

  2. вы создаете фиктивную работу "напоминания", которая всегда завершается неудачей при запуске (я предполагаю, что у вас есть какой-то мониторинг, чтобы определить это и объединить несколько напоминаний) и сделать это зависимым также от переменной - так, чтобы она выполнялась только / периодически отказывает, когда JobA отключен, т.е. указывает
    insert_job: JobA_disabled
    команда: ложь
    условие: v(var_disable_jobA) = "Y"
    дата_условия: 1
    start_mins: 59,29
    days_of_week: все
    alarm_if_fail: 1
    (извинения, если я поместил какие-либо опечатки в JIL)

Таким образом, вы будете получать напоминания каждые 30 минут (но выберите свое время напоминания), пока JobA отключен. Я бы также назвал работу напоминания "JobA_disabled" для ясности. Когда переменная должна установить что-то, отличное от Y, JobA возобновит работу, а сбойное напоминание перестанет напоминать вам.

Используйте атрибут разрешения задания, чтобы ограничить, кто может редактировать и выполнять задание. Разрешение по умолчанию - только владелец может редактировать и выполнять задание. В этом случае я думаю, что пользователь вошел в сеанс Autosys, используя учетные данные "владельца" задания, и, следовательно, этот человек сможет изменить статус задания. Решением было бы избавиться от необходимости ставить работу на лед, как предложили друзья выше.

ИЛИ Если идентификатор пользователя отличается, проверьте атрибут разрешения в определении задания и удалите запись. Допустимые значения: gx (только для UNIX). Назначает группе разрешение на выполнение задания. ge (только для UNIX). Назначает групповые разрешения на редактирование заданию. me Указывает, что любой авторизованный пользователь может редактировать задание независимо от того, на каком компьютере он находится. В противном случае пользователь должен войти в систему на компьютере, указанном в поле владельца (например, user@host_or_domain). mx Указывает, что любой авторизованный пользователь может выполнить задание независимо от того, на каком компьютере он находится. В противном случае пользователь должен войти в систему на компьютере, указанном в поле владельца (например, user@host_or_domain). Мы присваиваем миру права на редактирование задания. wx Назначает разрешения на выполнение в мире. Владелец задания всегда имеет полное разрешение на редактирование и выполнение. Пример: установка разрешений на выполнение и редактирование задания в UNIX. В этом примере устанавливаются разрешения в UNIX, чтобы любой пользователь мог выполнить задание, но редактировать его могут только члены вашей группы:missions: ge, wx.

Предыдущее предложение является хорошим. У меня есть еще одно, что нужно добавить - как насчет добавления другой работы, назовите ее работой Z. Заставьте B,C и D зависеть от успеха A и успеха Z (вы можете дополнительно ограничить их с помощью обратного просмотра). Сделайте Z коротким скриптом, который запускается и переходит только в успешное состояние А не на льду.

Это должно работать, но трюк с глобальной переменной тоже хорош. Если вы используете AutoSys R11.3.n, вы, вероятно, можете использовать ресурс, который установлен в начале потока и освобождается только в том случае, если задание не на льду или что-то подобное.

Другие вопросы по тегам