Ejemplo n.º 1
0
        protected Thread ExecuteTask(ICronJob cronjob, object parameter)
        {
            if (cronjob == null)
            {
                return(null);
            }

            try
            {
                switch (cronjob.CheckStatus((ISchemaInfo)parameter))
                {
                case EComponentStatus.DISABLED:
                {
                    if (LogLevel == ELogLevel.ALL)
                    {
                        MyLogger.LogText(string.Format("{0} DISABLED", cronjob.ID), "ServiceBase::ExecuteTask");
                    }
                    return(null);
                }

                case EComponentStatus.WORKING:
                {
                    if (LogLevel == ELogLevel.ALL || LogLevel == ELogLevel.WARN)
                    {
                        MyLogger.LogText(string.Format("{0} STILL BUSY", cronjob.ID), "ServiceBase::ExecuteTask");
                    }
                    return(null);
                }

                case EComponentStatus.UNAVAILABLE:
                {
                    if (LogLevel == ELogLevel.ALL)
                    {
                        MyLogger.LogText(string.Format("{0} OUT OF DATE ", cronjob.ID), "ServiceBase::ExecuteTask");
                    }
                    return(null);
                }

                case EComponentStatus.READY:
                {
                    if (LogLevel == ELogLevel.ALL || LogLevel == ELogLevel.WARN)
                    {
                        MyLogger.LogText(string.Format("{0} STARTED ", cronjob.ID), "ServiceBase::ExecuteTask");
                    }
#if DEBUG
                    cronjob.Run(parameter);
                    return(null);
#else
                    Thread taskthread = new Thread(new ParameterizedThreadStart(cronjob.Run));
                    taskthread.Start(parameter);
                    return(taskthread);
#endif
                }
                }

                return(null);
            }
            catch (Exception ex)
            {
                MyLogger.LogException(ex, "ServiceBase::ExecuteTask");
                return(null);
            }
        }