//public virtual string GetConfigValue(DbConn PubConn, string key) //{ // tb_config_dal dal = new tb_config_dal(); // var value = dal.Get2(PubConn, key); // return value; //} public virtual List <tb_config_model> GetConfig(DbConn PubConn) { tb_config_dal dal = new tb_config_dal(); var rs = dal.List(PubConn); return(rs); }
public JsonResult Delete(int id) { return(this.Visit(EnumUserRole.Admin, () => { try { tb_config_dal dal = new tb_config_dal(); using (DbConn PubConn = DbConn.CreateConn(Config.TaskConnectString)) { PubConn.Open(); bool state = dal.Delete(PubConn, id); RedisHelper.RefreashRedisServerIP(); RedisHelper.SendMessage(new RedisCommondInfo() { CommondType = EnumCommondType.ConfigUpdate }); return Json(new { code = 1, state = state }); } } catch (Exception ex) { return Json(new { code = -1, msg = ex.Message }); } })); }
public ActionResult Add(tb_config_model model) { return(this.Visit(EnumUserRole.Admin, () => { using (DbConn PubConn = DbConn.CreateConn(Config.TaskConnectString)) { PubConn.Open(); tb_config_dal dal = new tb_config_dal(); model.lastupdatetime = DateTime.Now; model.configkey = model.configkey.NullToEmpty(); model.configvalue = model.configvalue.NullToEmpty(); model.remark = model.remark.NullToEmpty(); if (model.id == 0) { dal.Add(PubConn, model); } else { dal.Edit(PubConn, model); } RedisHelper.RefreashRedisServerIP(); RedisHelper.SendMessage(new RedisCommondInfo() { CommondType = EnumCommondType.ConfigUpdate }); } return RedirectToAction("index"); })); }
public static void RefreashRedisServerIP() { try { using (DbConn PubConn = DbConn.CreateConn(Config.TaskConnectString)) { PubConn.Open(); var dal = new tb_config_dal(); var config = dal.Get(PubConn, RedisConfig.RedisServerKey); if (config != null) { RedisConfig.RedisServer = config.configvalue; } } } catch (Exception exp) { LogHelper.AddError(new Domain.Model.tb_error_model() { errorcreatetime = DateTime.Now, errortype = (int)BSF.BaseService.TaskManager.SystemRuntime.EnumTaskLogType.SystemError, msg = string.Format("从配置中获取{0}出错,", RedisConfig.RedisServerKey) + exp.DetailMessage(), nodeid = 0, taskid = 0 }); } }
// // GET: /Developers/ public ActionResult Index() { return(this.Visit(EnumUserRole.Admin, () => { using (DbConn PubConn = DbConn.CreateConn(Config.TaskConnectString)) { PubConn.Open(); List <tb_config_model> Model = new tb_config_dal().GetList(PubConn); return View(Model); } })); }
/// <summary> /// 任务调度平台根据发布的任务时间配置,定时回调运行方法 /// 开发人员的任务插件必须要重载并该方法 /// </summary> public override void Run() { /* * this.OpenOperator 用于任务调度平台提供给第三方使用的所有api接口封装 */ ConfigHelper.LoadConfig(this.AppConfig["BusinessMQManageConnectString"]); var sql = @""; List <tb_partition_model> userdpartitions = new List <tb_partition_model>(); Dictionary <int, tb_datanode_model> datanodemodels = new Dictionary <int, tb_datanode_model>(); DateTime servertime = DateTime.Now; SqlHelper.ExcuteSql(this.AppConfig["BusinessMQManageConnectString"], (c) => { tb_config_dal configdal = new tb_config_dal(); sql = configdal.Get(c, "MQCreateTableSql").value; tb_partition_dal partitiondal = new tb_partition_dal(); userdpartitions = partitiondal.List(c, true); tb_datanode_dal datanodedal = new tb_datanode_dal(); var ms = datanodedal.List(c); foreach (var m in ms) { datanodemodels.Add(m.datanodepartition, m); } servertime = c.GetServerDate(); }); if (string.IsNullOrWhiteSpace(sql)) { Error(this.AppConfig["BusinessMQManageConnectString"], "MQCreateTableSql未配置参数", new Exception("MQ未找到或者未配置MQCreateTableSql参数,用于每天创建消息分区表")); return; } foreach (var p in userdpartitions) { var partitioninfo = XXF.BaseService.MessageQuque.BusinessMQ.SystemRuntime.PartitionRuleHelper.GetPartitionIDInfo(p.partitionid); DateTime currenttime = servertime.Date; while (currenttime <= servertime.Date.AddDays(3)) //预创建3天的表 { var tablename = XXF.BaseService.MessageQuque.BusinessMQ.SystemRuntime.PartitionRuleHelper.GetTableName(partitioninfo.TablePartition, currenttime); // SqlHelper.ExcuteSql(this.GetDataNodeConnectString(datanodemodels[partitioninfo.DataNodePartition]), (c) => { bool exsit = c.TableIsExist(tablename); if (exsit != true) { string cmd = sql.Replace("{tablepartiton}", XXF.BaseService.MessageQuque.BusinessMQ.SystemRuntime.PartitionRuleHelper.PartitionNameRule(partitioninfo.TablePartition)) .Replace("{daypartition}", currenttime.ToString("yyMMdd")).Replace("{datanodepartiton}", XXF.BaseService.MessageQuque.BusinessMQ.SystemRuntime.PartitionRuleHelper.PartitionNameRule(partitioninfo.DataNodePartition)); c.ExecuteSql(cmd, new List <XXF.Db.ProcedureParameter>()); } }); currenttime = currenttime.AddDays(1); } } }
public ActionResult Add(int?id) { return(this.Visit(EnumUserRole.Admin, () => { if (id == null) { return View(); } using (DbConn PubConn = DbConn.CreateConn(Config.TaskConnectString)) { PubConn.Open(); tb_config_dal dal = new tb_config_dal(); var model = dal.Get(PubConn, id.Value); return View(model); } })); }
public static void RefreashRedisServerIP() { try { using (DbConn PubConn = DbConn.CreateConn(GlobalConfig.ConnectionString)) { PubConn.Open(); var dal = new tb_config_dal(); var config = dal.Get(PubConn, RedisConfig.RedisServerKey); if (config != null) { RedisConfig.RedisServer = config.configvalue; } } } catch (Exception exp) { LogHelper.AddNodeError(string.Format("从配置中获取{0}出错,", RedisConfig.RedisServerKey), exp); } }
/// <summary> /// 任务的开启 /// </summary> /// <param name="taskid"></param> /// <returns></returns> public bool Start(int taskid) { var taskruntimeinfo = TaskPoolManager.CreateInstance().Get(taskid.ToString()); if (taskruntimeinfo != null) { throw new Exception("任务已在运行中"); } taskruntimeinfo = new NodeTaskRuntimeInfo(); taskruntimeinfo.TaskLock = new TaskLock(); SqlHelper.ExcuteSql(GlobalConfig.TaskDataBaseConnectString, (c) => { tb_task_dal taskdal = new tb_task_dal(); taskruntimeinfo.TaskModel = taskdal.Get(c, taskid); tb_version_dal versiondal = new tb_version_dal(); taskruntimeinfo.TaskVersionModel = versiondal.GetCurrentVersion(c, taskid, taskruntimeinfo.TaskModel.taskversion); }); string filelocalcachepath = AppDomain.CurrentDomain.BaseDirectory.TrimEnd('\\') + "\\" + GlobalConfig.TaskDllCompressFileCacheDir + @"\" + taskruntimeinfo.TaskModel.id + @"\" + taskruntimeinfo.TaskModel.taskversion + @"\" + taskruntimeinfo.TaskVersionModel.zipfilename; string fileinstallpath = AppDomain.CurrentDomain.BaseDirectory.TrimEnd('\\') + "\\" + GlobalConfig.TaskDllDir + @"\" + taskruntimeinfo.TaskModel.id; string fileinstallmainclassdllpath = fileinstallpath + @"\" + taskruntimeinfo.TaskModel.taskmainclassdllfilename; string taskshareddlldir = AppDomain.CurrentDomain.BaseDirectory.TrimEnd('\\') + "\\" + GlobalConfig.TaskSharedDllsDir; BSF.Tool.IOHelper.CreateDirectory(filelocalcachepath); BSF.Tool.IOHelper.CreateDirectory(fileinstallpath); System.IO.File.WriteAllBytes(filelocalcachepath, taskruntimeinfo.TaskVersionModel.zipfile); CompressHelper.UnCompress(filelocalcachepath, fileinstallpath); //拷贝共享程序集 BSF.Tool.IOHelper.CopyDirectory(taskshareddlldir, fileinstallpath); try { new TaskAssemblyRedirect().TryRebulidDll(fileinstallmainclassdllpath, taskruntimeinfo.TaskModel.taskmainclassnamespace); var dlltask = new AppDomainLoader <BaseDllTask>().Load(fileinstallmainclassdllpath, taskruntimeinfo.TaskModel.taskmainclassnamespace, out taskruntimeinfo.Domain); var sdktaskmodel = new BSF.BaseService.TaskManager.Model.tb_task_model(); PropertyHelper.Copy(taskruntimeinfo.TaskModel, sdktaskmodel); dlltask.SystemRuntimeInfo = new TaskSystemRuntimeInfo() { TaskConnectString = GlobalConfig.TaskDataBaseConnectString, TaskModel = sdktaskmodel }; //加载AppConfig配置 var appconfig = new TaskAppConfigInfo(); if (!string.IsNullOrEmpty(taskruntimeinfo.TaskModel.taskappconfigjson)) { appconfig = new BSF.Serialization.JsonProvider().Deserialize <TaskAppConfigInfo>(taskruntimeinfo.TaskModel.taskappconfigjson); } SqlHelper.ExcuteSql(GlobalConfig.TaskDataBaseConnectString, (c) => { tb_config_dal configdal = new tb_config_dal(); var cs = configdal.GetList(c); foreach (var o in cs) { if (!appconfig.ContainsKey(o.configkey)) { appconfig.Add(o.configkey, o.configvalue); } } }); dlltask.AppConfig = appconfig; taskruntimeinfo.DllTask = dlltask; bool r = TaskPoolManager.CreateInstance().Add(taskid.ToString(), taskruntimeinfo); SqlHelper.ExcuteSql(GlobalConfig.TaskDataBaseConnectString, (c) => { tb_task_dal taskdal = new tb_task_dal(); taskdal.UpdateTaskState(c, taskid, (int)EnumTaskState.Running); }); LogHelper.AddTaskLog("节点开启任务成功", taskid); return(r); } catch (Exception exp) { DisposeTask(taskid, taskruntimeinfo, true); throw exp; } }