Beispiel #1
0
        private void Broadcast(JObject json)
        {
            string type = json["type"].ToString();

            switch (type)
            {
            case "cluster_created":
                OnClusterCreated?.Invoke(this, json.ToObject <ClusterEventArgs <ClusterCreated> >());
                break;

            case "processing_started":
                OnProcessingStarted?.Invoke(this, json.ToObject <ClusterEventArgs <ProcessingStarted> >());
                break;

            case "job_status_changed":
                OnJobStatusChanged?.Invoke(this, json.ToObject <ClusterEventArgs <JobStatusChanged> >());
                break;

            case "processing_done":
                OnProcessingDone?.Invoke(this, json.ToObject <ClusterEventArgs <ProcessingDone> >());
                break;

            case "cluster_finalized":
                OnClusterFinalized?.Invoke(this, json.ToObject <ClusterEventArgs <ClusterFinalized> >());
                break;

            case "log_message":
                OnLogMessage?.Invoke(this, json.ToObject <ClusterEventArgs <LogMessage> >());
                break;

            default:
                break;
            }
        }
        private void SendProcessingStarted()
        {
            var i    = 0;
            var info = Jobs.Select(j => new JobInfo(j.Weight, i++ % size, j.Index)).ToList();

            OnProcessingStarted?.Invoke(
                this,
                new ClusterEventArgs <ProcessingStarted>(
                    DateTime.Now,
                    new ProcessingStarted(info)));
        }