Ejemplo n.º 1
0
        /// <summary>
        /// </summary>
        protected sealed override void OnStarting()
        {
            AppCore.Get <Journaling.JournalingManager>().RegisterJournalTypedInternal(GetType(), ServiceName, null);
            this.RegisterServiceState(ServiceStatus.RunningIdeal, "Сервис запущен.");

            var type = GetType();

            var taskSchedulingManager = AppCore.Get <TaskSchedulingManager>();

            taskSchedulingManager.RegisterTask(new TaskRequest()
            {
                Name            = $"Сервис '{GetType().FullName}': прием входящих сообщений",
                Description     = "",
                IsEnabled       = true,
                TaskOptions     = TaskOptions.PreventParallelExecution,
                UniqueKey       = "CallServiceIncomingReceive_" + GetType().FullName,
                ExecutionLambda = () => MessagingManager.CallServiceIncomingReceive(type, TimeSpan.FromMinutes(4)),
                Schedules       = new List <TaskSchedule>()
                {
                    new TaskCronSchedule(Cron.MinuteInterval(1))
                },
                JournalOptions = new Journaling.JournalOptions()
                {
                    LimitByLastNDays = 0
                }
            });
            taskSchedulingManager.RegisterTask(new TaskRequest()
            {
                Name            = $"Сервис '{GetType().FullName}': обработка входящих сообщений",
                Description     = "",
                IsEnabled       = true,
                TaskOptions     = TaskOptions.PreventParallelExecution,
                UniqueKey       = "CallServiceIncomingHandle_" + GetType().FullName,
                ExecutionLambda = () => MessagingManager.CallServiceIncomingHandle(type, TimeSpan.FromMinutes(4)),
                Schedules       = new List <TaskSchedule>()
                {
                    new TaskCronSchedule(Cron.MinuteInterval(1))
                },
                JournalOptions = new Journaling.JournalOptions()
                {
                    LimitByLastNDays = 0
                }
            });
            _taskOutcomingMessages = taskSchedulingManager.RegisterTask(new TaskRequest()
            {
                Name            = $"Сервис '{GetType().FullName}': отправка исходящих сообщений",
                Description     = "",
                IsEnabled       = true,
                TaskOptions     = TaskOptions.PreventParallelExecution,
                UniqueKey       = "CallServiceOutcoming_" + GetType().FullName,
                ExecutionLambda = () => MessagingManager.CallServiceOutcoming(type, TimeSpan.FromMinutes(4)),
                Schedules       = new List <TaskSchedule>()
                {
                    new TaskCronSchedule(Cron.MinuteInterval(1))
                },
                JournalOptions = new Journaling.JournalOptions()
                {
                    LimitByLastNDays = 0
                }
            });

            OnServiceStarting();
        }
Ejemplo n.º 2
0
 public InstanceActivatingHandlerImpl(MessagingManager manager)
 {
     _manager = manager;
 }