2016-08-12 1 views
0

저는 작업이 중앙 대기열에 추가 될 수있는 작업 대기열 유형 시스템을 개발하기 위해 노력하고 있습니다. 그런 다음 프로세서는 대기열의 작업을 읽고 실행하고 어딘가에 결과를 저장합니다.작업/작업 큐에 입력 옵션을 결과와 함께 포함해야합니까?

각 작업에는 순서대로 수행 할 작업 목록과 작업 및 작업을 실행할 때 사용할 옵션이 있습니다.

public class Job 
{ 
    public Guid JobId { get; set; } 
    public string Name { get; set; } 
    public DateTime Created { get; set; } 
    public string CreatedBy { get; set; } 
    IDictionary<string, string> Options { get; set; } 
    public IList<Task> Tasks { get; set; } 
} 

public class Task 
{ 
    public string Command { get; set; } 
    IDictionary<string, string> Options { get; set; } 
} 

프로세서는 작업 및 작업이 성공하면 확인하고 그 결과를 설명하는 메시지를 포함 작업 및 관련 작업에 대한 결과를 반환합니다.

public class JobResult 
{ 
    public Guid JobId { get; set; } 
    public bool Succeeded { get; set; } 
    public string StatusMessage { get; set; } 
    IList<TaskResult> TaskResults { get; set; } 
} 

public class TaskResult 
{ 
    public bool Succeeded { get; set; } 
    public string StatusMessage { get; set; } 
} 

그러나 나는 또한 세부 사항과 작업 자체의 옵션 만이 아니라 결과를 보여주고 싶어 작업의 결과를 보여주는 GUI 또는 보고서의 어떤 종류를 만들 수 있다면. 한 가지 방법은 Job에 대한 참조를 JobResult 클래스에 추가하기 위해이 작업을 수행했습니다.

그러나 여기에는 Task와 TaskResult 사이에는 직접적인 연관성이 없으며 각각의 목록에서의 위치는 다릅니다.

또는 JobResult 및 Task는 각각 Job 및 Task에서 상속되어 결과 상태 속성을 추가 할 수 있습니다.

public class JobResult: Job 
{ 
    public bool Succeeded { get; set; } 
    public string StatusMessage { get; set; } 
} 

public class TaskResult: Task 
{ 
    public bool Succeeded { get; set; } 
    public string StatusMessage { get; set; } 
} 

이러한 시스템은 일반적으로 어떻게 작동합니까? 결과와 함께 입력 사본을 반환하는 것은 나쁜 생각/코드 냄새입니까?

답변

0

JobJobResult이 아니고 그 반대의 경우도 있기 때문에 을 Job과 연결하도록 투표했습니다.

JobResult는 연관된 Job 있고, 객체 지향 프로그래밍 세계에서는, 관계 composition 수단 갖는다.

+0

아, 좋은 지적입니다. 그것은 확실히 "관계가 있습니다". 위의 업데이트에서 개별 결과 클래스를 생략하고 결과를 작업 및 작업 클래스에 결합하는 것에 대해 어떻게 생각합니까? –

+0

@EricAnastas 솔직히 나는 새로운 콘텐츠를 삭제할 것이고 새로운 질문을 추가 할 것입니다. 시간외 질문을 확장하고 Q & A를 실시간 채팅으로 변환 할 수는 없습니다 ............ –

+0

@EricAnastas 당신은 어떤 것을 매우 구체적으로 물었고 대답했습니다. 그것이 당신에게 유용했다면, 내 대답을 받아 들인 것으로 표시하고 다른 질문을 새로운 질문 본문의 일부로 복사하여 붙여 넣어야합니다 –

관련 문제