예제 #1
1
 protected override DateTime BenchDate(Quartz.IJobExecutionContext context)
 {
     //every 5mins, figure out new create/updated products, promotions
     var dataMap = context.JobDetail.JobDataMap;
     int intervalMins =  dataMap.ContainsKey("interval") ? dataMap.GetIntValue("interval") : 5;
     return DateTime.Now.AddMinutes(-intervalMins);
 }
예제 #2
1
 public void Execute(Quartz.IJobExecutionContext context)
 {
     if (context != null)
     {
         try
         {
             var ip = context.MergedJobDataMap.GetString("BehaviorServerIp");
             var port = context.MergedJobDataMap.GetIntValue("BehaviorServerPort");
             var behaviorName = context.MergedJobDataMap.GetString("BehaviorName");
             if (!string.IsNullOrEmpty(ip) && port != 0)
             {
                 using (var ctx = NetMQ.NetMQContext.Create())
                 {
                     using (var sock = ctx.CreateRequestSocket())
                     {
                         var addr = string.Format("{0}:{1}", ip, port);
                         Log.InfoFormat("Connecting to behavior server: {0}", addr);
                         sock.Connect(addr);
                         Log.InfoFormat("Connected to behavior server: {0}", addr);
                         sock.Send(behaviorName);
                         Log.InfoFormat("Sent behavior execution request: {0}", behaviorName);
                         var reply = sock.ReceiveString();
                         Log.InfoFormat("Behavior execution response: {0}", reply);
                     }
                 }
             }
         }
         catch (Exception ex)
         {
             Log.ErrorFormat("Simple behavior error : {0}", ex.Message);
         }
     }
 }
 public void JobToBeExecuted(Quartz.IJobExecutionContext context)
 {
     logger.Debug("UploadJobListener.JobToBeExecuted() 执行之前先检查一下表是否需要更新!!");
     string Url = ConfUtil.UploadUrl() + "?customerId=" + ConfUtil.CustomerId() + "&Version=" + Assembly.GetExecutingAssembly().GetName().Version.ToString();
     try
     {
         logger.DebugFormat("上传空数据,以获得表的最后更新时间!,URL:{0}",Url);
         DataResult ret = HttpClientHelper.PostResponse<DataResult>(Url, "[]");
         if (ret != null)
         {
             logger.DebugFormat("表的最后更新时间 msec={0}", ret.DeviceLatestUpdateMsec);
             Common.UpdateMeters(ret.DeviceLatestUpdateMsec);
             context.JobDetail.JobDataMap.Put(Consts.DeviceLatestUpdateKey, true);
         }
         else
         {
             logger.DebugFormat("****返回空记录!,URL:{0}", Url);
         }
     }
     catch (Exception ex)
     {
         context.JobDetail.JobDataMap.Put(Consts.DeviceLatestUpdateKey, false);
         logger.Debug("获得表的最后更新时间异常", ex);
     }
 }
		public void Execute(Quartz.IJobExecutionContext context)
		{
			//this._logger.Trace("Starting RunDeploymentJob.Execute");
			//lock (typeof(RunBatchDeploymentJob))
			//{
			//	if (_isRunning)
			//	{
			//		this._logger.Info("RunDeploymentJob already running");
			//		return;
			//	}
			//	else
			//	{
			//		_isRunning = true;
			//	}
			//}
			try
			{
				_deployBatchRunner.TryRunNextDeployment();
			}
			catch (Exception err)
			{
				this._logger.ErrorException("RunDeploymentJob failed: " + err.ToString(), err);
			}
			//finally
			//{
			//	_isRunning = false;
			//}
			this._logger.Trace("Done RunDeploymentJob.Execute");
		}
예제 #5
0
    // Use this for initialization
    IEnumerator Start()
    {
        first_quartz_  = null;
        second_quartz_ = null;
        quartz_prefab_ = GameObject.Find("Quartz");
        System.Random random       = new System.Random();
        Quartz[]      quartz_array = new Quartz[QUARTZ_NUMBER];
        for (int i = 0; i < QUARTZ_NUMBER; ++i)
        {
            Quartz new_quartz_script = ((GameObject)Instantiate(
                                            quartz_prefab_,
                                            new Vector3(i % QUARTZ_PER_ROW * 2.5f - 4.0f,
                                                        i / QUARTZ_PER_ROW * 2.5f - 4.0f,
                                                        0),
                                            Quaternion.identity)).GetComponent <Quartz>();
            quartz_array[i] = new_quartz_script;
            new_quartz_script.SetLevel(1);


            new_quartz_script.SetColor(colors[random.Next(0, 3)]);
            new_quartz_script.Toggle();
        }
        // TODO: use animation or other better way to replace wait.
        yield return(new WaitForSeconds(5));

        for (int i = 0; i < QUARTZ_NUMBER; ++i)
        {
            quartz_array[i].Toggle();
        }
    }
예제 #6
0
        public void Execute(Quartz.IJobExecutionContext context)
        {
            logger.Debug("执行清理任务!!!!!!!!!!!!!!!");
            using (MysqlDbContext dbcontext = new MysqlDbContext())
            {
                try
                {
                    logger.DebugFormat("开始清除数据!");
                    dbcontext.Database.ExecuteSqlCommand("delete from uploaddatas where uploaded={0}", 3);
                    dbcontext.SaveChanges();
                }
                catch (Exception ex)
                {
                    logger.Error("清除数据失败", ex);
                }
            }

            using (MysqlDbContext dbcontext = new MysqlDbContext())
            {
                //清理长时间未上传成功的数据
                int days = ConfUtil.ForceClearDays();
                logger.DebugFormat("采集后超过{0}天的数据强制清除(未上传的数据也清除)!", days);
                try
                {
                    long nowJavaMill=(long)DateTime.Now.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds;
                    long daysMill =(long)TimeSpan.FromDays(days).TotalMilliseconds;
                    dbcontext.Database.ExecuteSqlCommand("delete from uploaddatas where  {0} - groupstamp > {1} ", nowJavaMill, daysMill);
                    dbcontext.SaveChanges();
                }
                catch (Exception ex)
                {
                    logger.Error("强制清除失败", ex);
                }
            }
        }
예제 #7
0
 public void Execute(Quartz.IJobExecutionContext context)
 {
     if (context != null)
     {
         var behaviorType = context.MergedJobDataMap.Get("BehaviorType") as Type;
         var execContext = context.MergedJobDataMap.Get("ExecutionContext") as IBehaviorExecutionContext;
         var triggerResult = context.MergedJobDataMap.Get("TriggerResult") as TriggerResult;
         if (behaviorType != null && execContext != null && triggerResult != null)
         {
             var execMethodInfo = behaviorType.GetMethod("Execute");
             if (execMethodInfo != null)
             {
                 // Create the instance of the Startupbehavior type
                 var startupInstance = Activator.CreateInstance(behaviorType);
                 if (startupInstance != null)
                 {
                     Log.Info(@"------------- Task Details --------------");
                     Log.InfoFormat(@"Behavior type Name : {0}", behaviorType.Name);
                     // Invoke the execute method
                     var result = execMethodInfo.Invoke(startupInstance, new object[] {execContext, triggerResult});
                     if (result != null)
                     {
                         Log.InfoFormat(@"Execution result : {0}", result);
                     }
                 }
             }
         }
     }
 }
예제 #8
0
        public void Execute(Quartz.IJobExecutionContext context)
        {
            var updater = EPMCS.Service.Service.updater;
            logger.Debug("执行软件升级任务!!!!!!!!!!!!!!!");
            updater.Error += (s, e) =>
              {
                  logger.DebugFormat("更新发生了错误:{0},URL:{1}", updater.Context.Exception.Message, updater.Context.UpdateInfoFileUrl);
              };
            updater.UpdatesFound += (s, e) =>
              {
                  logger.Debug("发现了新版本: " + updater.Context.UpdateInfo.AppVersion);
                 //开始更新
                  updater.StartExternalUpdater();
              };
            updater.NoUpdatesFound += (s, e) =>
               {
                   logger.Debug("没有新版本! ");
               };
            updater.MinmumVersionRequired += (s, e) =>
              {
                  logger.Debug("当前版本过低无法使用自动更新! ");
              };
            //Updater.CheckUpdateSimple();//
            updater.Context.EnableEmbedDialog = false;

            updater.BeginCheckUpdateInProcess();
        }
예제 #9
0
 public static void Postfix(Quartz __instance, Tool t)
 {
     if (wasCobalt)
     {
         t.UpgradeLevel = 5;
         wasCobalt      = false;
     }
 }
예제 #10
0
 public void Execute(Quartz.JobExecutionContext context)
 {
     string extraText = "[none]";
     if (context.MergedJobDataMap.Contains("ExtraText"))
     {
         extraText = context.MergedJobDataMap["ExtraText"].ToString();
     }
     Console.WriteLine(string.Format("Hello from ConsoleJob1 - {0}\nExtra Text:{1}", DateTime.Now, extraText));
 }
예제 #11
0
 public static bool Prefix(Quartz __instance, Tool t)
 {
     if (t is Pickaxe && t.UpgradeLevel == 5)
     {
         wasCobalt      = true;
         t.UpgradeLevel = 4;
     }
     return(true);
 }
예제 #12
0
 public override void Update(Quartz.IScheduler scheduler) {
     this.Scheduler = scheduler;
     //NOT SUPPORT
     this.TriggerListeners = scheduler.ListenerManager.GetTriggerListeners().ToList();
     this.SchedulerListeners = scheduler.ListenerManager.GetSchedulerListeners().ToList();
     this.JobListeners = scheduler.ListenerManager.GetJobListeners().ToList();
     this.NotifyOfPropertyChange(() => this.TriggerListeners);
     this.NotifyOfPropertyChange(() => this.SchedulerListeners);
     this.NotifyOfPropertyChange(() => this.JobListeners);
 }
예제 #13
0
        protected override void ExecuteJob(Quartz.IJobExecutionContext context)
        {
            var modulename = context.JobInstance.GetType().FullName;
            var config = SYNC_SECTION_CONFIG[modulename];

            var dbfrom = CreateDataHandler(string.IsNullOrWhiteSpace(config.DbFrom) ? SYNC_SECTION_CONFIG.DefaultContext.DbFrom : config.DbFrom);
            var dbtarget = CreateDataHandler(string.IsNullOrWhiteSpace(config.DbTarget) ? SYNC_SECTION_CONFIG.DefaultContext.DbTarget : config.DbTarget);
            var commandText = string.IsNullOrWhiteSpace(config.CommandText) ? SYNC_SECTION_CONFIG.DefaultContext.CommandText : config.CommandText;

            Execute(dbfrom, dbtarget, commandText);
        }
예제 #14
0
        public Quartz.IJob NewJob(TriggerFiredBundle bundle, Quartz.IScheduler scheduler)
        {
            try
            {
                return (IJob)this.Container.Resolve(bundle.JobDetail.JobType);
            }
            catch (Exception ex)
            {

                throw;
            }
        }
예제 #15
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="scheduler"></param>
        /// <param name="dellist"></param>
        public static void deleteJob(Quartz.IScheduler scheduler, List<Config> dellist)
        {
            IList<JobKey> jlist = new List<Quartz.JobKey>();

            foreach (var it in dellist)
            {
                JobKey key = new JobKey(it.jobname, it.groupname);
                jlist.Add(key);

            }

            scheduler.DeleteJobs(jlist);
        }
예제 #16
0
		public IJob NewJob(TriggerFiredBundle bundle, Quartz.IScheduler scheduler)
		{
			try 
			{
				var x = this.Kernel.Get(bundle.JobDetail.JobType);
				return (IJob)x;
			}
			catch(Exception err)
			{
				this.EventReporter.ExceptionForObject(err, bundle.JobDetail);
				throw;
			}
		}
 public void JobWasExecuted(Quartz.IJobExecutionContext context, Quartz.JobExecutionException jobException)
 {
     logger.Debug("UploadJob.Execution() 已经完成!!");
     //if (context.JobDetail.JobDataMap.ContainsKey(Consts.DeviceLatestUpdateKey))
     //{
     //    long msec = context.JobDetail.JobDataMap.GetLong(Consts.DeviceLatestUpdateKey);
     //    updateMeters(msec);
     //}
     //else
     //{
     //    logger.DebugFormat("UploadJobListener.JobWasExecuted()没有找到KEY : {0}", Consts.DeviceLatestUpdateKey);
     //}
 }
        void CheckIfScreenIsLocked()
        {
            Console.WriteLine($"Testing locked screen in 3 seconds...");
            var t = new System.Windows.Forms.Timer();

            t.Interval = 3000;
            t.Tick    += (sender, e) => {
                t.Stop();
                var locked = Quartz.IsScreenLocked();
                Console.WriteLine($"IsScreenLocked:{locked}");
            };
            t.Start();
        }
예제 #19
0
        protected override DateTime BenchDate(Quartz.IJobExecutionContext context)
        {
            //every 5mins, figure out new create/updated products, promotions
            var dataMap = context.JobDetail.JobDataMap;
            var interval = dataMap.ContainsKey("interval") ? dataMap.GetInt("interval") : 5;
            if (!dataMap.ContainsKey("benchtime"))
            {
                dataMap.Put("benchtime", DateTime.Now.AddMinutes(-interval));
            }
            else
            {
                dataMap["benchtime"] = dataMap.GetDateTimeValue("benchtime").AddMinutes(interval);
            }

            return dataMap.GetDateTime("benchtime");
        }
예제 #20
0
		public void Execute(Quartz.IJobExecutionContext context)
		{
			_logger.Info("Starting PurgeBuildJob.Execute");
			try 
			{
				bool doneList = false;
				int pageNumber = 1;
				while(!doneList)
				{
					var listOptions = new ListOptions
					{
						PageNumber = pageNumber,
						PageSize = 100,
						SortAscending = true,
						SortField = "UpdatedDateTimeUtc"
					};
					var list = _buildManager.GetBuildList(listOptions);
					if (list.Items != null)
					{
						foreach(var build in list.Items)
						{
							try 
							{
								_buildPurger.PurgeBuildIfNecessary(build);
							}
							catch(Exception err)
							{
								_logger.ErrorException(string.Format("Error purging build \"{0}\": {1}", build.DisplayValue, err.ToString()), err);
							}
						}
					}
					if(list.IsLastPage)
					{
						doneList = true;
					}
					else 
					{
						pageNumber++;
					}
				}
			}
			catch(Exception err)
			{
				this._logger.ErrorException("PurgeBuildJob.Execute Failed: " + err.ToString(), err);
			}
			_logger.Info("Done PurgeBuildJob.Execute");
		}
예제 #21
0
        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="scheduler"></param>
        /// <param name="list"></param>
        public static void addjob(Quartz.IScheduler scheduler, List<Core.Config> list)
        {
            foreach (var item in list)
            {

                Assembly assembly = Assembly.Load(item.assemblyname);
                Type type = assembly.GetType(item.@namespace);

                IJobDetail job = JobBuilder.Create(type)
                           .WithIdentity(item.jobname, item.groupname).Build(); // name "myJob", group "group1"

                var trigger = addTriger(item);

                scheduler.ScheduleJob(job, trigger.Build());

            }
        }
        public IJob NewJob(TriggerFiredBundle bundle, Quartz.IScheduler scheduler)
        {
            var jobDetail = bundle.JobDetail;
            var jobType = jobDetail.JobType;

            try
            {
                Log.Debug(string.Format("Creating job '{0}' of type {1}", jobDetail.Description, jobType.FullName));

                return _container.Resolve(jobType) as IJob;
            }
            catch (Exception e)
            {
                Log.ErrorFormat("Failed to create job of type {0}, because {1}", jobType, e);
                throw new SchedulerException(string.Format("Problem creating job '{0}'", jobDetail.JobType.FullName), e);
            }
        }
예제 #23
0
 public static string GetJobDataMapSitecoreString(Quartz.JobDataMap jobDataMap)
 {
     StringBuilder sbJobDataMap = new StringBuilder();
     //Convert Quartz Job Data Map to .net string having each name value pair delimted & as represented by NameValueField in sitecore
     if (jobDataMap != null && jobDataMap.Count > 0)
     {
         IList<string> jobDataMapKeys = jobDataMap.GetKeys();
         for (int i = 0; i < jobDataMapKeys.Count; i++)
         {
             sbJobDataMap.Append(jobDataMapKeys[i] + "=" + jobDataMap[(jobDataMapKeys[i])].ToString());
             if (i < jobDataMapKeys.Count - 1)
             {
                 sbJobDataMap.Append("&");
             }
         }
     }
     return sbJobDataMap.ToString();
 }
예제 #24
0
        static string GetErrorText(int hr)
        {
            string        _text   = "";
            int           _length = 160;
            StringBuilder sb      = new StringBuilder(_length);

            try
            {
                if (Quartz.AMGetErrorText(hr, sb, _length) > 0)
                {
                    _text = sb.ToString();
                }
            }
            catch
            {
            }

            return(_text);
        }
예제 #25
0
 public void Execute(Quartz.IJobExecutionContext context)
 {
     if (context != null)
     {
         var behavior = context.MergedJobDataMap.Get("MotionBasedBehavior") as MotionBasedBehavior;
         var contextServer = context.MergedJobDataMap.Get("ContextServer") as string;
         if (behavior != null)
         {
             Log.Info(@"------------- Task Details --------------");
             Log.InfoFormat(@"Behavior Name : {0}", behavior.Name);
             Log.InfoFormat(@"Human Id : {0}", behavior.Id);
             Log.InfoFormat(@"Trigger Name : {0}", behavior.Trigger);
             Log.InfoFormat(@"Confidence Level : {0}", behavior.ConfidenceLevel);
             Log.InfoFormat(@"Priority : {0}", behavior.Priority);
             Log.Info(@"-----------------------------------------");
             SyncExecuteBehavior(contextServer, behavior);
         }
     }
 }
예제 #26
0
        public static string GetErrorMessageForException(Exception ex, bool detailed)
        {
            string msg = (detailed) ? ex.ToString() : ex.Message;

            if (ex is COMException)
            {
                const int MAX_ERROR_TEXT_LEN = 255;

                // Make a buffer to hold the string
                StringBuilder sb = new StringBuilder(MAX_ERROR_TEXT_LEN, MAX_ERROR_TEXT_LEN);

                COMException cex = ex as COMException;

                if (Quartz.AMGetErrorText(cex.ErrorCode, sb, MAX_ERROR_TEXT_LEN) > 0)
                {
                    msg = sb.ToString();
                }
            }
            return(msg);
        }
예제 #27
0
		public IJob NewJob(TriggerFiredBundle bundle, Quartz.IScheduler scheduler)
		{
			try 
			{
				var genericType = typeof(AutofacJobWrapper<>);
				Type[] typeArgs = { bundle.JobDetail.JobType };
				var actualType = genericType.MakeGenericType(typeArgs);
				var x = this.Context.Resolve(actualType);
				return (IJob)x;
			}
			catch(Exception err)
			{
				//using(var scope = this.Context.BeginLifetimeScope())
				//{
				//	var reporter = scope.Resolve<IEventReporter>();
				//	reporter.ExceptionForObject(err, bundle.JobDetail);
				//}
				throw;
			}
		}
예제 #28
0
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="scheduler"></param>
        /// <param name="modilist"></param>
        public static void modiJob(Quartz.IScheduler scheduler, List<Config> modilist)
        {
            //   scheduler.GetTrigger(new TriggerKey(

            foreach (var item in modilist)
            {

                //var old = scheduler.GetTrigger(new TriggerKey(item.jobname + "trigger", "触发器组"));
                //if (old == null)
                //    return;

                //var newtrigger = addTriger(item).Build();
                //scheduler.RescheduleJob(old.Key, newtrigger);

                JobKey key = new JobKey(item.jobname, item.groupname);
                scheduler.DeleteJob(key);
                addjob(scheduler, item);

            }
        }
예제 #29
0
 void OnGUI()
 {
     // Draw the menu
     // Restart game
     if (GUI.Button(new Rect(10, 10, 100, 20), "Restart game"))
     {
         Application.LoadLevel(1);
     }
     // Quit the current game and get back to the start menu
     if (GUI.Button(new Rect(10, 40, 100, 20), "End game"))
     {
         if (state_ == States.ONGAMING)
         {
             foreach (GameObject a in GameObject.FindGameObjectsWithTag("quartz"))
             {
                 Quartz quartz_script = a.GetComponent <Quartz>();
                 int    level         = quartz_script.GetLevel();
                 // Do NOT count the prefab
                 if (level > 0)
                 {
                     Quartz.Colors color = quartz_script.GetColor();
                     points_     += LEVEL_POINTS[level];
                     got_quartz_ += "Level " + level + " " + color.ToString() + "\n";
                     Destroy(a);
                 }
             }
             state_ = States.ENDED;
         }
     }
     if (GUI.Button(new Rect(10, 70, 100, 20), "Quit"))
     {
         Application.LoadLevel(0);
     }
     if (state_ == States.ENDED)
     {
         string table_head;
         GUI.TextArea(
             new Rect(200, 100, 500, 500),
             got_quartz_ + "\nYou've Got " + points_.ToString() + " points");
     }
 }
예제 #30
0
 public override void Execute(Quartz.IJobExecutionContext context) {
     Console.WriteLine(".........");
 }
예제 #31
0
 protected abstract void ExecuteJob(Quartz.IJobExecutionContext context);
예제 #32
0
 public void Execute(Quartz.IJobExecutionContext context)
 {
     ExecuteJob(context);
 }
예제 #33
0
        public override void Update(Quartz.IScheduler scheduler) {
            this.Scheduler = scheduler;

            this.Calendars = scheduler.GetCalendarNames().Select(n => new {
                Name = n,
                Calendar = scheduler.GetCalendar(n)
            }).ToDictionary(n => n.Name, n => n.Calendar);

            this.NotifyOfPropertyChange(() => this.Calendars);
        }
예제 #34
0
        public void Execute(Quartz.IJobExecutionContext context)
        {
            if (AutoUpdateData._isUploading)
            {
                logger.DebugFormat("***************************Previous job is In Upload. Please wait。。。 {0}", context.PreviousFireTimeUtc.Value.DateTime);
                AutoUpdateData.jobflag("P Please wait。。。revious job is In Upload:" + context.PreviousFireTimeUtc.Value.DateTime);
                return;
            }

            DataTable tblPicked;
            BssLineStock bssLineStock = new BssLineStock();

            AutoUpdateData._isUploading = true;
            //get sql update mode
            //1-删除后再追加 2-直接更新
            if (AutoUpdateData._updatemode.StartsWith("1"))
            {
                _is1 = true;
            }
            else if (AutoUpdateData._updatemode.StartsWith("2"))
            {
                _is1 = false;
            }
            else
            {
                _is1 = true;
            }

            logger.DebugFormat("执行更新任务!!!!!!!!!!!!!!!");
            AutoUpdateData.jobflag("Is Runing, Next Exec Job Time:" + context.NextFireTimeUtc.Value.DateTime);
            try
            {

                var _tmpOracleDBname = AutoUpdateData._DBOracle11DBname;
                //init even tInitIniToday
                AutoUpdateData.tInitIniToday(DateTime.Now.ToString("yyyyMMdd"));
                //get
                if (AutoUpdateData._tableList.Count > 0)
                {
                    logger.Debug("执行数据获取任务!!!!!!!!!!!!!!!");
                    var tmpBatch = AutoUpdateData._txt1batchNum;
                    AutoUpdateData._dsList.Clear();

                    var tmpwhereFirst = getInSql(AutoUpdateData._CONTRACT, "CONTRACT", false);
                    if (string.IsNullOrEmpty(tmpwhereFirst))
                    {
                        return;
                    }
                    var tmpwhere = tmpwhereFirst;

                    foreach (var item in AutoUpdateData._tableList)
                    {
                        try
                        {
                            //init attr
                            _typeOfTable = "0";
                            _time_start = DateTime.Now.ToString();
                            _time_done = DateTime.Now.ToString();
                            _sql = "select * from ";
                            tmpwhere = tmpwhereFirst;

                            if (item.Key.Contains('|'))
                            {
                                var td = item.Key.Split('|');

                                var tmpTableTakeDataNum = "";
                                int preNum = 0;
                                var allCount = 0;

                                var tmpKeyname = td[0].Trim() + "_KEY";
                                var tmpKeyLast = td[0].Trim() + "." + td[1].Trim();

                                var tmpds = new DataSet();
                                //father and son
                                var isSon = false;
                                var tmpdsForFatherSon = new DataSet();

                                tmpds.DataSetName = td[0].Trim();

                                //test
                                //if (item.Value != 3)
                                //{
                                //    continue;
                                //}

                                switch (item.Value)
                                {
                                    case 1:
                                        //key: 0 table | where 1 | order by 2  | type 3
                                        var tmpInsql = getInSql(AutoUpdateData._N_OBL_PART_TYPE, td[1].Trim(), true);

                                        if (string.IsNullOrEmpty(tmpInsql))
                                        {
                                            continue;
                                        }
                                        else
                                        {
                                            tmpwhere += tmpInsql;
                                        }

                                        //pre update number
                                        tmpTableTakeDataNum = AutoUpdateData._iniToday.IniReadValue("TableTakeDataNum", td[0].Trim());

                                        if (!int.TryParse(tmpTableTakeDataNum, out preNum))
                                        {
                                            preNum = 0;
                                        }
                                        //get all count form oracle db

                                        allCount = OracleDal.GetCount(_tmpOracleDBname, td[0].Trim(), tmpwhere);
                                        logger.DebugFormat("*********Table: {0},已上传:{1} ,Oracle 现在有数据:{2}.当日:{3}", td[0], preNum, allCount, DateTime.Now.ToString("yyyyMMdd"));

                                        if (preNum >= allCount)
                                        {
                                            logger.DebugFormat("*********(已上传数) {0} >= {1} (Oracle 现在有数据),无需更新.", preNum, allCount);
                                        }
                                        else
                                        {
                                            var tmptoUpdate = (allCount - preNum);
                                            logger.DebugFormat("*********需更新数:{0}.", tmptoUpdate);
                                            var tmporderby = td[2].Trim();
                                            if (td[2].Trim().ToLower().Equals("no"))
                                            {
                                                tmporderby = "";
                                            }

                                            tmpds = OracleDal.GetData(_tmpOracleDBname, td[0].Trim(), tmpwhere, tmporderby, preNum, tmptoUpdate);

                                        }

                                        tmpds.DataSetName = td[0].Trim();
                                        _typeOfTable = td[3].Trim();
                                        break;
                                    case 2:

                                        //key: 0 table | add Id 1 | order by 2 | datefrom 3 | type 4
                                        //get the last ID

                                        //get from SQL by id;
                                        //var tmpTRANSACTION_ID = AutoUpdateData._iniToday.IniReadValue("TableKeyLastValue", tmpKeyLast);
                                        var tmpTRANSACTION_ID = DbHelperSQL.GetDMaxID(td[1], td[0]);

                                        // get last where
                                        tmpwhere += " and " + td[1].Trim() + ">='" + tmpTRANSACTION_ID + "' ";

                                        //pre update number
                                        tmpTableTakeDataNum = AutoUpdateData._iniToday.IniReadValue("TableTakeDataNum", td[0].Trim());

                                        if (!int.TryParse(tmpTableTakeDataNum, out preNum))
                                        {
                                            preNum = 0;
                                        }

                                        //get all count form oracle db

                                        OracleParameter[] parameters2 = { new OracleParameter(":gxsj", OracleDbType.Varchar2, 10) };
                                        parameters2[0].Value = DateTime.Now.AddDays(-3).ToString("yyyy-MM-dd") + " 00:00:00";// HH

                                        if (tmpTRANSACTION_ID == 1)
                                        {
                                            logger.DebugFormat("******************************{0} 初始更新,加限时间-3天。", td[0]);
                                            _time_start = DateTime.Now.AddDays(-3).ToString("yyyy-MM-dd") + " 00:00:00";
                                            tmpwhere += " and " + td[3] + ">=to_date(:gxsj,'yyyy-MM-dd HH24:mi:ss')";
                                            allCount = OracleDal.GetCount(_tmpOracleDBname, td[0].Trim(), tmpwhere, parameters2);

                                        }
                                        else
                                        {
                                            allCount = OracleDal.GetCount(_tmpOracleDBname, td[0].Trim(), tmpwhere);
                                        }

                                        logger.DebugFormat("*********Table: {0},已上传:{1} ,Oracle 现在有数据:{2}.当日:{3}", td[0], preNum, allCount, DateTime.Now.ToString("yyyyMMdd"));

                                        if (preNum >= allCount)
                                        {
                                            logger.DebugFormat("*********(已上传数) {0} >= {1} (Oracle 现在有数据),无需更新.", preNum, allCount);
                                        }
                                        else
                                        {
                                            var tmptoUpdate = (allCount - preNum);
                                            logger.DebugFormat("*********需更新数:{0}.", tmptoUpdate);
                                            var tmporderby = td[2].Trim();
                                            if (td[2].Trim().ToLower().Equals("no"))
                                            {
                                                tmporderby = "";
                                            }
                                            if (tmpTRANSACTION_ID == 1)
                                            {
                                                tmpds = OracleDal.GetData(_tmpOracleDBname, td[0].Trim(), tmpwhere, tmporderby, preNum, tmptoUpdate, parameters2);
                                            }
                                            else
                                            {
                                                tmpds = OracleDal.GetData(_tmpOracleDBname, td[0].Trim(), tmpwhere, tmporderby, preNum, tmptoUpdate);
                                            }

                                        }

                                        tmpds.DataSetName = td[0].Trim();
                                        _typeOfTable = td[4].Trim();
                                        _time_done = OracleDal.getMaxCol(tmpds, td[3]).ToString();
                                        break;
                                    case 3:

                                        //key: 0 table|1 where|2 order by  | type 3
                                        //get per last datetime

                                        var tmpLastWhere = AutoUpdateData._iniToday.IniReadValue("TableKeyLastValue", tmpKeyLast);

                                        var tmpLastWhereDateTime = DateTime.Now;
                                        if (!DateTime.TryParse(tmpLastWhere, out tmpLastWhereDateTime))
                                        {
                                            tmpLastWhereDateTime = DateTime.Now;
                                            AutoUpdateData._iniToday.IniWriteValue("TableKeyLastValue", tmpKeyLast, tmpLastWhereDateTime.ToString());
                                        }
                                        tmpwhere += " and to_char(" + td[1] + ", 'yyyymmddHH24miss') >= :gxsj";
                                        OracleParameter[] parameters3 = { new OracleParameter(":gxsj", OracleDbType.Varchar2, 10) };
                                        //no time

                                        parameters3[0].Value = DateTime.Now.ToString("yyyyMMdd000000");

                                        //for N_AIS_SHOP_LIST_PICKED_ACT_TAB
                                        var tmpnewDateTime =DateTime.Now.ToString("yyyyMMdd000000");
                                        if (td[0].Trim().ToUpper().Equals("N_AIS_SHOP_LIST_PICKED_ACT_TAB".ToUpper()))
                                        {
                                            tmpnewDateTime = DbHelperSQL.GetTableFieldDateTime("AISPICK_UPD_DATE", "M_CONTOROL", " [KEY-ID]='01'");
                                            parameters3[0].Value = tmpnewDateTime;
                                            logger.DebugFormat("**************{0},{1} change to new value:{2}.", td[0], td[1], tmpnewDateTime);
                                        }

                                        //pre update number
                                        tmpTableTakeDataNum = AutoUpdateData._iniToday.IniReadValue("TableTakeDataNum", td[0].Trim());

                                        if (!int.TryParse(tmpTableTakeDataNum, out preNum))
                                        {
                                            preNum = 0;
                                        }

                                        allCount = OracleDal.GetCount(_tmpOracleDBname, td[0].Trim(), tmpwhere, parameters3);
                                        logger.DebugFormat("*********Table: {0},已上传:{1} ,Oracle 现在有数据:{2}.当日:{3}", td[0], preNum, allCount, DateTime.Now.ToString("yyyyMMdd"));

                                        if (preNum >= allCount)
                                        {
                                            logger.DebugFormat("*********(已上传数) {0} >= {1} (Oracle 现在有数据),无需更新.", preNum, allCount);
                                        }
                                        else
                                        {
                                            var tmptoUpdate = (allCount - preNum);
                                            logger.DebugFormat("*********需更新数:{0}.", tmptoUpdate);
                                            var tmporderby = td[2].Trim();
                                            if (td[2].Trim().ToLower().Equals("no"))
                                            {
                                                tmporderby = "";
                                            }
                                            tmpds = OracleDal.GetData(_tmpOracleDBname, td[0].Trim(), tmpwhere, tmporderby, preNum, tmptoUpdate, parameters3);

                                        }

                                        tmpds.DataSetName = td[0].Trim();
                                        _typeOfTable = td[3].Trim();
                                        _time_done = OracleDal.getMaxCol(tmpds, td[1]).ToString();

                                        #region new update 2015-12-02
                                        if (tmpds.Tables.Count > 0 && td[0].Trim().ToUpper().Equals("N_AIS_SHOP_LIST_PICKED_ACT_TAB".ToUpper()))
                                        {
                                            logger.DebugFormat("*******开始更新{0}的相关表[M_PARTS_STOCK,M_LINE_PARTS_STOCK]", td[0].Trim());
                                            //AIS配膳リストピッキング実績-> AIS配膳リストピッキング実績
                                            tblPicked = tmpds.Tables[0];// bssLineStock.GetPickedActData();
                                            //更新ライン在庫マス数据
                                            if (bssLineStock.SetLinePartsStockData(tblPicked) <= 0)
                                            {
                                                //TODO: 更新失败
                                                logger.ErrorFormat("******* {0} 的相关表[M_PARTS_STOCK,M_LINE_PARTS_STOCK] 更新失败", td[0].Trim());
                                            }
                                            else
                                            {
                                                logger.DebugFormat("******* {0} 的相关表[M_PARTS_STOCK,M_LINE_PARTS_STOCK] 更新Success", td[0].Trim());

                                                var tmpExist = DbHelperSQL.GetCount("M_CONTOROL", "[KEY-ID]='01'");
                                                var tmpsql = "";
                                                if (tmpExist > 0)
                                                {
                                                    tmpsql = string.Format("UPDATE M_CONTOROL set [AISPICK_UPD_DATE]='{0}' where [KEY-ID]='01'", _time_done);
                                                }
                                                else
                                                {
                                                    tmpsql = string.Format("INSERT INTO M_CONTOROL([KEY-ID],[AISPICK_UPD_DATE])  VALUES('{0}','{1}')", "01", _time_done);
                                                }

                                                var tmpdd = DbHelperSQL.ExecuteSql(tmpsql);

                                                if (tmpdd > 0)
                                                {
                                                    logger.DebugFormat("*******Success M_CONTOROL 更新时间 AISPICK_UPD_DATE success", td[0].Trim());
                                                }
                                                else
                                                {
                                                    logger.DebugFormat("*******Error M_CONTOROL 更新时间 AISPICK_UPD_DATE Error", td[0].Trim());
                                                }

                                            }
                                        }

                                        #endregion

                                        break;
                                    case 4:
                                        //key: P 0|where 1| order by 2 | C 3 | type 4
                                        //get P:父,C: 子 根据P的Key得到C.的数据。
                                        //get the last ID

                                        // set tmpwhere
                                        tmpwhere += " and " + td[1] + ">=to_date(:gxsj,'yyyy-MM-dd HH24:mi:ss')";
                                        OracleParameter[] parameters4 = { new OracleParameter(":gxsj", OracleDbType.Varchar2, 10) };

                                        //set time
                                        parameters4[0].Value = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";// HH

                                        logger.DebugFormat("****TESTFKG:{0},ORG_START_DATE:{1}   【0:の場合 PCの日付を抽出条件にする。1:の場合 環境ファイル内の日付(yyyy-mm-dd)を設定し、その日付を抽出条件にする】", AutoUpdateData._TESTFKG, AutoUpdateData._ORG_START_DATE);
                                        if (AutoUpdateData._TESTFKG.Equals("1"))
                                        {
                                            logger.DebugFormat("****使用配置文件中的日期。{0}", AutoUpdateData._ORG_START_DATE);
                                            parameters4[0].Value = AutoUpdateData._ORG_START_DATE + " 00:00:00";// HH
                                        }
                                        var trytmpDD = DateTime.Now;
                                        var chedkdate = DateTime.TryParse(parameters4[0].Value.ToString(), out trytmpDD);
                                        if (!chedkdate)
                                        {
                                            logger.DebugFormat("**配置文件提供ORG_START_DATE的值不符合要求(yyyy-MM-dd),value:{0}.则使用当天日期。", AutoUpdateData._ORG_START_DATE, DateTime.Now.ToString("yyyy-MM-dd"));
                                            logger.ErrorFormat("**配置文件提供ORG_START_DATE的值不符合要求(yyyy-MM-dd),value:{0}.则使用当天日期。", AutoUpdateData._ORG_START_DATE, DateTime.Now.ToString("yyyy-MM-dd"));
                                            parameters4[0].Value = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";// HH
                                        }

                                        // parameters4[0].Value = tmpORG_START_DATE.ToString("yyyy-MM-dd") + " 00:00:00";// HH

                                        //pre update number
                                        tmpTableTakeDataNum = AutoUpdateData._iniToday.IniReadValue("TableTakeDataNum", td[0].Trim());

                                        if (!int.TryParse(tmpTableTakeDataNum, out preNum))
                                        {
                                            preNum = 0;
                                        }

                                        //get all count form oracle db

                                        allCount = OracleDal.GetCount(_tmpOracleDBname, td[0].Trim(), tmpwhere, parameters4);

                                        logger.DebugFormat("*********Table: {0},已上传:{1} ,Oracle 现在有数据:{2}.>=条件日期:{3}", td[0], preNum, allCount, trytmpDD.ToString("yyyy-MM-dd"));

                                        if (preNum >= allCount)
                                        {
                                            logger.DebugFormat("*********(已上传数) {0} >= {1} (Oracle 现在有数据),无需更新.", preNum, allCount);
                                        }
                                        else
                                        {
                                            var tmptoUpdate = (allCount - preNum);
                                            logger.DebugFormat("*********需更新数:{0}.", tmptoUpdate);
                                            var tmporderby = td[2].Trim();
                                            if (td[2].Trim().ToLower().Equals("no"))
                                            {
                                                tmporderby = "";
                                            }
                                            tmpds = OracleDal.GetData(_tmpOracleDBname, td[0].Trim(), tmpwhere, tmporderby, preNum, tmptoUpdate, parameters4);

                                        }

                                        tmpds.DataSetName = td[0].Trim();

                                        //to Get C
                                        if (!AutoUpdateData._tableKeyList.ContainsKey(tmpKeyname))
                                        {
                                            isSon = false;
                                            logger.DebugFormat("*************************表:{0} 没有设置主键,无法更新子表:{1}。", td[0], td[3]);
                                        }
                                        else
                                        {
                                            //var tmpkeyValue = AutoUpdateData._tableKeyList[tmpKeyname];
                                            //var tmpkeys = tmpkeyValue.Split(',');
                                            //logger.DebugFormat("*************************表:{0} 的主键:{1}。", td[0], tmpkeyValue);
                                            isSon = true;
                                        }
                                        tmpds.DataSetName = td[0].Trim();
                                        _typeOfTable = td[4].Trim();
                                        _time_done = OracleDal.getMaxCol(tmpds, td[1]).ToString();
                                        break;
                                    default:

                                        tmpds.DataSetName = td[0].Trim();
                                        if (td[0].IndexOf('.') > 0)
                                        {
                                            tmpds.DataSetName = td[0].Trim().Split('.')[1];
                                        }
                                        break;
                                }
                                _sql += td[0].Trim() + " where " + tmpwhere;
                                //**************************同步表
                                OracleDal.StartToMSSQL(_is1, false, tmpds, tmpKeyLast);

                                //for father and son
                                if (isSon)
                                {
                                    var tmpallSonCount = 0;
                                    if (tmpds.Tables.Count > 0)
                                    {
                                        var tmpkeyValue = AutoUpdateData._tableKeyList[tmpKeyname];
                                        var tmpkeys = tmpkeyValue.Split(',');
                                        if (tmpkeys.Count() <= 0)
                                        {
                                            logger.DebugFormat("*************************表:{0} 的主键 为空:{1}。", td[0], tmpkeyValue);
                                        }
                                        else
                                        {
                                            logger.DebugFormat("*************************表:{0} 的主键:{1}。", td[0], tmpkeyValue);
                                            logger.DebugFormat("*************************开始更新表:{0},子表:{1}。", td[0], td[3]);
                                            string sonTmpsonwhereAll = "";
                                            foreach (DataRow p in tmpds.Tables[0].Rows)
                                            {
                                                string sonTmpsonwhere = "";
                                                try
                                                {
                                                    var tmpsonwhere = "";

                                                    tmpsonwhere = "SELECT * FROM " + td[3].Trim() + " where ";

                                                    if (!string.IsNullOrEmpty(_tmpOracleDBname))
                                                    {
                                                        tmpsonwhere = "SELECT * FROM " + _tmpOracleDBname + "." + td[3].Trim() + " where ";
                                                    }
                                                    if (tmpkeys.Count() > 0)
                                                    {
                                                        if (tmpkeys.Count() == 1)
                                                        {
                                                            tmpsonwhere += tmpkeys[0] + "='" + p[tmpkeys[0]].ToString().Trim() + "'";
                                                        }
                                                        else
                                                        {
                                                            for (int i = 0; i < tmpkeys.Count(); i++)
                                                            {
                                                                if (i == 0)
                                                                {
                                                                    tmpsonwhere += tmpkeys[0] + "='" + p[tmpkeys[0]].ToString().Trim() + "'";
                                                                }
                                                                else
                                                                {
                                                                    tmpsonwhere += " and " + tmpkeys[i] + "='" + p[tmpkeys[i]].ToString().Trim() + "'";
                                                                }
                                                            }
                                                        }

                                                    }
                                                    //
                                                    sonTmpsonwhere = tmpsonwhere;
                                                    sonTmpsonwhereAll += sonTmpsonwhere + "\n";
                                                    //get data
                                                    var tmpSon = OracleDal.Query(tmpsonwhere);

                                                    tmpSon.DataSetName = td[3].Trim();
                                                    //**************************同步子表
                                                    tmpallSonCount += OracleDal.StartToMSSQL(_is1, true, tmpSon, "");
                                                }
                                                catch (Exception ex)
                                                {
                                                    logger.ErrorFormat("****************************更新主表:{0},记录:{1}  -->的子表失败。{2}", td[0], (p[0].ToString() + "," + p[1].ToString() + "," + p[2].ToString()), ex.Message);
                                                    //OracleDal.ilog(td[3].Trim(), allCount, AutoUpdateData._CONTRACT + ",Fail," + AutoUpdateData._updatemode, "AutoUpdateOracleMSSQL: SQL:" + sonTmpsonwhere + " Fail. Error:" + ex.Message, AutoUpdateData._ipAddMac);

                                                    OracleDal.ilog("error", updateJob._typeOfTable, updateJob._time_start, updateJob._time_done, sonTmpsonwhere, allCount, AutoUpdateData._ipAddMac, AutoUpdateData._CONTRACT + "|" + AutoUpdateData._updatemode);

                                                    continue;
                                                }

                                            }
                                            //OracleDal.ilog(td[3].Trim(), tmpallSonCount, AutoUpdateData._CONTRACT + ",Success," + AutoUpdateData._updatemode, "AutoUpdateOracleMSSQL:Update Count:" + tmpallSonCount + " Success.", AutoUpdateData._ipAddMac);
                                            OracleDal.ilog("success", updateJob._typeOfTable, updateJob._time_start, updateJob._time_done, sonTmpsonwhereAll, tmpallSonCount, AutoUpdateData._ipAddMac, AutoUpdateData._CONTRACT + "|" + AutoUpdateData._updatemode);

                                        }

                                    }
                                    else
                                    {
                                        logger.DebugFormat("*************************表:{0} 的数据 为空。", td[0]);
                                    }

                                }

                            }
                            else
                            {
                                var tmpTableTakeDataNum = AutoUpdateData._iniToday.IniReadValue("TableTakeDataNum", item.Key.Trim());
                                int preNum = 0;
                                if (!int.TryParse(tmpTableTakeDataNum, out preNum))
                                {
                                    preNum = 0;
                                }

                                var allCount = OracleDal.GetCount(_tmpOracleDBname, item.Key, "");

                                logger.DebugFormat("*********Table: {0},已上传:{1} ,Oracle 现在有数据:{2}.", item.Key, preNum, allCount);

                                if (preNum >= allCount)
                                {
                                    logger.DebugFormat("*********(已上传数) {0} >= {1} (Oracle 现在有数据),无需更新.", preNum, allCount);
                                }
                                else
                                {

                                    var tmptoUpdate = (allCount - preNum);
                                    logger.DebugFormat("*********需更新数:{0}", tmptoUpdate);

                                    var tmpds = OracleDal.GetData(_tmpOracleDBname, item.Key, "", "", preNum, tmptoUpdate);
                                    tmpds.DataSetName = item.Key;

                                    OracleDal.StartToMSSQL(_is1, false, tmpds, "");

                                }
                            }

                        }
                        catch (Exception ex)
                        {
                            AutoUpdateData.jobflag("Error:" + ex.Message);
                            logger.ErrorFormat("{0}表同步有问题,开始同步下个表。Error:{1}.", item.Key, ex.Message);
                            continue;
                        }

                    }
                }
                else
                {
                    logger.Error("no Table,Please check Set.ini,and add Table.");
                }

            }
            catch (Exception ex)
            {

                AutoUpdateData.jobflag("Error:" + ex.Message);
                logger.Error(ex);
            }
            finally
            {
                AutoUpdateData._isUploading = false;
            }
            AutoUpdateData.jobflag("Notice: Current Job is Run Over, Next Exec Job Time:" + context.NextFireTimeUtc.Value.DateTime);
        }
예제 #35
0
    IEnumerator  OnCheckQuartz(GameObject quartz)
    {
        if (first_quartz_ == null)
        {
            first_quartz_ = quartz;
            first_quartz_.SendMessage("Toggle");
        }
        else if (second_quartz_ == null)
        {
            second_quartz_ = quartz;
            second_quartz_.SendMessage("Toggle");
            Quartz first_quartz_script  = first_quartz_.GetComponent <Quartz>();
            Quartz second_quartz_script = second_quartz_.GetComponent <Quartz>();

            int first_quartz_level  = first_quartz_script.GetLevel();
            int second_quartz_level = second_quartz_script.GetLevel();
            if (first_quartz_level != second_quartz_level)
            {
                // level doesn't match, destory the two quartz
                Destroy(first_quartz_);
                Destroy(second_quartz_);
            }
            else
            {
                // TODO: use animation to replace the wait
                yield return(new WaitForSeconds(0.5f));

                Vector3 new_position = first_quartz_.transform.position;


                Quartz.Colors first_color  = first_quartz_script.GetColor();
                Quartz.Colors second_color = second_quartz_script.GetColor();

                int new_level = first_quartz_level;
                Destroy(first_quartz_);
                Destroy(second_quartz_);
                first_quartz_  = null;
                second_quartz_ = null;
                Quartz new_quartz_script = ((GameObject)Instantiate(
                                                quartz_prefab_,
                                                new_position,
                                                Quaternion.identity)).GetComponent <Quartz>();
                if (first_color == second_color)
                {
                    new_quartz_script.SetColor(first_color);
                    new_quartz_script.SetLevel(new_level + 1);
                }
                else if (first_color != Quartz.Colors.BLUE &&
                         second_color != Quartz.Colors.BLUE)
                {
                    new_quartz_script.SetColor(Quartz.Colors.BLUE);
                    new_quartz_script.SetLevel(new_level);
                }
                else if (first_color != Quartz.Colors.YELLOW &&
                         second_color != Quartz.Colors.YELLOW)
                {
                    new_quartz_script.SetColor(Quartz.Colors.YELLOW);
                    new_quartz_script.SetLevel(new_level);
                }
                else if (first_color != Quartz.Colors.RED &&
                         second_color != Quartz.Colors.RED)
                {
                    new_quartz_script.SetColor(Quartz.Colors.RED);
                    new_quartz_script.SetLevel(new_level);
                }

                new_quartz_script.Toggle();
                // TODO: use animation to replace the wait
                yield return(new WaitForSeconds(0.5f));

                new_quartz_script.Toggle();
            }
        }
        else
        {
            print("You shoud not open a box with two boxes already opened");
        }
    }
 public void ScheduleJob(IJobDetail jobDetail, Quartz.Collection.ISet<ITrigger> triggersForJob, bool replace)
 {
     _scheduler.ScheduleJob(jobDetail, triggersForJob, replace);
 }
예제 #37
0
파일: HtsJob.cs 프로젝트: cnalwaysroad/Urge
 public static void Execute(Quartz.IJobExecutionContext context)
 {
 }
예제 #38
0
 public SchedulerWrapper(Quartz.IScheduler quartzScheduler)
 {
     _quartzScheduler = quartzScheduler;
 }
예제 #39
0
 public MagicQuartz()
 {
     Quartz = new ushort[7];
 }