public JobManager(ClientManager clientManager, NodeManager nodeManager)
        {
            jobDicByJobID = new Dictionary<int, Job>();

            jobListDicByJobListID = new Dictionary<int, List<Job>>();
            jobStatusDicByJobID = new Dictionary<int, JobStatus>();
            waitingJobQueue = new List<Job>();
            this.nodeManager = nodeManager;
            this.clientManager = clientManager;
            //jobResultCache = new Dictionary<string, string>();
            jobResultCache = new JobResultCache();
        }
        public void Init()
        {
            ServerKey = Guid.NewGuid().ToString();
            clientManager = new ClientManager();
            nodeManager = new NodeManager();
            jobManager = new JobManager(clientManager, nodeManager);
            hbManager = new HeartbeatManager(OnClientUnreachable, OnNodeUnreachable);
            //postProcessor = new PostProcessor(jobManager, clientManager, nodeManager, lockObj);
            nodeManager.AddJobmanager(jobManager);
            try
            {
                IConnection connection = GlobalRabbitMQConnection.Instance.GetConnection();
                connection.ConnectionShutdown += Connection_ConnectionShutdown;
                connection.ConnectionBlocked += Connection_ConnectionBlocked;
                connection.ConnectionUnblocked += Connection_ConnectionUnblocked;
                
                syncClientReceiver = new SyncMessageReceiver("DSDPS_SYNC", "CLIENT", "SERVER", SyncClientMessageProcessor);
                syncClientReceiver.Init();
                syncNodeReceiver = new SyncMessageReceiver("DSDPS_SYNC", "NODE", "SERVER", SyncNodeMessageProcessor);
                syncNodeReceiver.Init();

                syncUpdateReceiver = new SyncMessageReceiver("DSDPS_UPDATE", "NODE", "SERVER", SyncNodeUpdateMessageProcessor);
                syncUpdateReceiver.Init(true);

                Console.WriteLine("Node proc binary version : " + DPSServerSetting.Instance.LastNodeProcVersion);
                Console.WriteLine("Node version : " + DPSServerSetting.Instance.NodeVersion);
            }
            catch (Exception)
            {
                Console.WriteLine("[Error] Error occured while initializing server! \nPress any key to exit.");
                Console.Read();

                Environment.Exit(1);
            }
            DPSServerSetting.Save();

        }