클러스터의 모든 서버에서 실행되는 hangfire로 등록 된 되풀이 작업이 필요한 상황이 있습니다.모든 서버에서 hangfire 되풀이 작업
(작업이 필요 정기적으로 모든 서버에서 실행할 수 있도록 로컬 일부 파일을 복사하는 것입니다)
지금까지 내가 n 개의 서버에 대한 n 개의 작업의 결과로 서버 이름의 ID와 동일한 작업을 등록 시도했다 :
RecurringJob.AddOrUpdate(Environment.MachineName,() => CopyFiles(Environment.MachineName), Cron.MinuteInterval(_delay));
하고 작업 자체 검사가 올바른 서버이며,이 경우에만 무언가를하는 경우 :
public static void CopyFiles(string taskId)
{
if (string.IsNullOrWhiteSpace(taskId) || !taskId.Equals(Environment.MachineName))
{
return;
}
// do stuff here if it matches our taskname
}
이 가진 문제는 모든 작업의 execut 첫 번째 서버의 es가 완료되면 완료로 표시되고 결과적으로 다른 서버에서 실행되지 않습니다.
작업이 모든 서버에서 실행되는지 확인할 수있는 방법이 있습니까?
또는 하나의 서버 만 주어진 작업을 처리 할 수있는 방법이 있습니까? 즉, 작업을 생성 한 서버에서 작업을 수행하십시오.
나는이 반대를 찾고 있었다, 그러나 당신이 나를 도왔다 질문 중 가능하다고 말했다. – Zapnologica