У меня есть требование, когда у меня есть набор заданий, которые должны выполняться с экрана (каждое задание может занимать часы для выполнения), и мне нужно установить некоторые правила для выполнения этих заданий. его можно представить с помощью графика.Какой шаблон дизайна подходит для выполнения этого рабочего процесса?
- каждое задание дается порядковый номер и задание должно быть выполнено в последовательности
- однако существует множество рабочих мест, которые могут выполняться в любом порядке, и каждый из них может иметь путь самостоятельно. например, как только A и B закончены, D, E, F могут выполняться в любом порядке, но может быть такое правило, как G, может выполняться только после выполнения D, H может работать только после того, как E будет сделано примерно так.
- Некоторые задания могут выполняться, если кто-либо из предшествующих параллельных заданий успешно выполнен. если задания A, B, C, D и A, B, C могут выполняться в любом порядке, а D может выполняться только в том случае, если A или B или C завершены.
- Некоторые задания могут выполняться только в том случае, если все предыдущие параллельные задания завершены. в приведенном выше примере, например, может быть выполнено правило типа D, если завершены A и B и C.
- есть несколько контрольных точек, которые означают, что после завершения задания контрольной точки ни одно из предыдущих не может быть повторно запущено, включая задание контрольной точки ,
как-то мне нужно уметь выражать условие против задания, которое можно оценить во время выполнения. что-то вроде E = (A и B) OR (C и D); что означает, что задание E может выполняться, если A и B успешны, или C и D являются успешными.
, который в значительной степени суммирует различные типы правил, и мой вопрос: есть ли шаблон проектирования, который я могу использовать для его реализации? В идеале я хотел бы сохранить этот рабочий процесс в базе данных и проверить, разрешено ли задание работать или нет на основе этого. рабочий процесс Windows может быть чрезмерным для этого, и я ищу более простое решение, которое может быть не лучшим, но занимает меньше времени.
технологии, которые будут использоваться: ASP.NET 3.5, C# 3.0, SQL Server 2008