2016-06-16 4 views
1

내 응용 프로그램의 대기열에 작업. 이처럼 :성공 작업 세부 정보에서 인수 값을 숨기는 방법은 무엇입니까? 인수</p> SomeClass가 newtosoft Json.NET에 의해 JSON에서 직렬화 복원 <pre><code>List<SomeClass> </code></pre> <p>와

개방 성공 작업 세부 사항은 내가 볼 것
BackgroundJob.Enqueue(() => myJob.jobStartMethos(List<SomeClass> argument)); 

:

MyJobClass myJob = Activate<MyJobClass>(); 
myJob.jobStartMethod(
new { FromJson<SomeClass>("json string"), FromJson<SomeClass>("json string"), FromJson<SomeClass>("json string"), FromJson<SomeClass>("json string"), FromJson<SomeClass>("json string"), FromJson<SomeClass>("json string") ... etc... 

이 인수가 너무 커서 정말 세부 사항을 검색 할 수 없습니다. 어떻게 해결할 수 있을까요? 내 SomeClass toString() 재정의 할 tryed하지만이 도움이되지 않습니다. 그리고 tryed

JobHelper.SetSerializerSettings(new JsonSerializerSettings 
      { 
       TypeNameHandling = TypeNameHandling.None 
      }); 

그러나 이것은 도움이되지 않습니다.

+2

저는 궁금 해서요, 거기에 어떤 가치가 있습니까? 큰 배경 직업 논쟁은 일반적으로 나쁜 습관이다. – odinserj

+0

저는 Hangfire에서 한 번의 반복 작업을했습니다. 이 작업은 매 15 분마다 실행되며 REST API를 통해 CRM에 쿼리하여 최신 업데이트 된 개체를 가져옵니다 (CRM이 너무 크고 이러한 상호 작용이 유일한 방법입니다). 이 객체에는 설명, 히스토리 등이 포함됩니다. CRM 응답에서 객체를 비 직렬화 한 후 JSON을 백그라운드 작업의 인수로 제공했습니다. 개체의 변경 사항을보고 특정 방식으로 반응하는 백그라운드 작업 (변경하고 다른 시스템에서 경고 함) 백그라운드 작업이 너무 많습니다. 이 작업을 제어하기 위해 나는 model.listen (objects)를 백그라운드 작업으로 사용했다. async run model.listen (objects) – sintasy

+0

하지만 다른 테이블을 생성하고 그 값을 덤프하고 새로운 레코드의 식별자 만 Hangfire로 전달하면 처리 후 레코드)? 그런 식으로 당신은 또한 당신의 방법을 멱등수로 만들 수 있습니다. – odinserj

답변

0

예, 큰 작업 인수를 데이터베이스에 저장하고 JobClass.fromDatabase (행 ID)와 같은 작업을 실행하는 것이 좋은 해결책입니다. 예를 들어, 일자리가 실패하면 더 많은 것을 알게되고 오래된 논거 (직업 실패로 끝난)로 일자리를 재구 축할 수있게됩니다.