Esempio n. 1
0
    public Task Execute(IJobExecutionContext context)
    {
        JobDataMap dataMap = context.JobDetail.JobDataMap;

        Console.WriteLine($"Execute Code for {dataMap.GetString("filePath")} - {dataMap.GetString("id")} is now running at {DateTime.Now.ToString()} and a random number is : {new Random().Next(0, 99999)}");
        string filePath    = dataMap.GetString("filePath");
        string baseAddress = $"{dataMap.GetString("baseurl")}code";

        //
        try
        {
            WebRequest reqObj = WebRequest.Create(baseAddress);
            reqObj.Method      = "POST";
            reqObj.ContentType = "application/json";
            filePath           = filePath.Replace("\\", "\\\\");
            string requestBody = "{\"filePath\":\"" + filePath + "\",\"params\":\"" + string.Empty + "\"}";
            byte[] byteArray   = Encoding.UTF8.GetBytes(requestBody);
            using (StreamWriter writer = new StreamWriter(reqObj.GetRequestStream()))
            {
                writer.Write(requestBody);
                writer.Flush();
                writer.Close();
                var response = (HttpWebResponse)reqObj.GetResponse();

                using (var rdr = response.GetResponseStream())
                {
                    DataContractJsonSerializer deserializer    = new DataContractJsonSerializer(typeof(ExecuteCodeResponse));
                    ExecuteCodeResponse        executeCodeResp = (ExecuteCodeResponse)deserializer.ReadObject(rdr);
                    executeCodeResp.executedAt = DateTime.Now;
                    JobSchedulerHelper.AddZMKResponses(dataMap.GetString("id"), executeCodeResp);
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.StackTrace);
        }
        return(Task.FromResult(0));
    }
Esempio n. 2
0
        public async Task <IActionResult> GetSelectedTaskAysnc(string id)
        {
            var           taskData    = SchedulerPayload.Get().Where(s => s.Id == id).FirstOrDefault();
            var           _type       = SchedulerPayload.Get().Where(s => s.Id == id).Select(t => t.Type).FirstOrDefault();
            List <object> taskHistNew = new List <object>();

            if (!string.IsNullOrEmpty(taskData.Id))
            {
                string origid = "";
                if (id.IndexOf('-') > 0)
                {
                    origid = id.Substring(0, id.IndexOf('-'));
                }
                else
                {
                    origid = id;
                }
                var resp = await nnclient.GetRunningTaskByTaskName(origid);

                if ((JObject.Parse(resp)["runningTask"].Count() == 0) && (taskData.Id != taskData.Name))
                {
                    resp = await nnclient.GetRunningTaskByTaskName(origid.Substring(0, origid.IndexOf(taskData.Name)));
                }
                var    joResp = JsonConvert.DeserializeObject <ZMM.Models.ClientJsonObjects.ZMKCodeExecution.RootObject>(resp);
                JArray jArr   = JArray.FromObject(joResp.runningTask);
                Console.WriteLine($">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>ZMK RUNNING TASK: {joResp}");
                // JObject joResp = JObject.Parse(resp);
                // JArray jArr = (JArray)joResp["runningTask"];
                //
                if (taskData.Recurrence == "REPEAT")
                {
                    taskHistNew.Clear();
                    foreach (var j in taskData.History)
                    {
                        if (_type.Contains("PYTHON"))
                        {
                            ExecuteCodeResponse ecr = (ExecuteCodeResponse)j;
                            string _status          = jArr.Where(s => s["idforData"].ToString() == ecr.idforData).Select(s => s["status"].Value <string>()).FirstOrDefault();
                            ecr.status = _status;
                            taskHistNew.Add(ecr);
                        }
                        if (_type.Contains("AUTOML"))
                        {
                            AutoMLResponse obj     = (AutoMLResponse)j;
                            string         _status = jArr.Where(s => s["idforData"].ToString() == obj.idforData).Select(s => s["status"].Value <string>()).FirstOrDefault();
                            obj.status = _status;
                            taskHistNew.Add(obj);
                        }
                        if (_type.Contains("NN"))
                        {
                            TrainingResponse obj     = (TrainingResponse)j;
                            string           _status = jArr.Where(s => s["idforData"].ToString() == obj.idforData).Select(s => s["status"].Value <string>()).FirstOrDefault();
                            obj.status = _status;
                            taskHistNew.Add(obj);
                        }
                    }
                }
                else if (taskData.Recurrence == "ONE_TIME")
                {
                    taskHistNew.Clear();
                    foreach (var j in taskData.History)
                    {
                        if (j.ToString() == "ZMM.Models.ResponseMessages.TrainingResponse")
                        {
                            TrainingResponse jlist      = (TrainingResponse)j;
                            string           _idfordata = jArr.Where(s => s["idforData"].ToString() == jlist.idforData).Select(s => s["idforData"].Value <string>()).FirstOrDefault();
                            if (!string.IsNullOrEmpty(_idfordata))
                            {
                                JObject obj = JObject.FromObject(new
                                {
                                    idforData  = _idfordata,
                                    status     = jArr.Where(s => s["idforData"].ToString() == jlist.idforData).Select(s => s["status"].Value <string>()).FirstOrDefault(),
                                    executedAt = jlist.executedAt
                                });
                                taskHistNew.Add(obj);
                            }
                        }
                        else
                        {
                            var    jo         = JObject.Parse(j.ToString());
                            string _idfordata = jArr.Where(s => s["idforData"].ToString() == jo["idforData"].ToString()).Select(s => s["idforData"].Value <string>()).FirstOrDefault();
                            if (!string.IsNullOrEmpty(_idfordata))
                            {
                                JObject obj = JObject.FromObject(new
                                {
                                    idforData  = _idfordata,
                                    status     = jArr.Where(s => s["idforData"].ToString() == jo["idforData"].ToString()).Select(s => s["status"].Value <string>()).FirstOrDefault(),
                                    executedAt = jo["executedAt"].ToString()
                                });
                                taskHistNew.Add(obj);
                            }
                        }
                    }
                }
                taskData.History.Clear();
                taskData.History = taskHistNew;
                SchedulerPayload.Update(taskData);

                return(Json(SchedulerPayload.Get().Where(s => s.Id == id).FirstOrDefault()));
            }
            else
            {
                return(Ok(new { }));
            }
        }