public override void doProcess(object obj)
        {
            if (System.Threading.Interlocked.Exchange(ref syncPoint, 1) == 0)
            {
                try
                {
                    if (scApp.FailOverService.isActive())
                    {
                        if (line.ServiceMode != SCAppConstants.AppServiceMode.Active)
                        {
                            line.ServiceMode = SCAppConstants.AppServiceMode.Active;

                            //scApp.getBCFApplication().startTcpIpSecverListen();

                            // scApp.VehicleService.SubscriptionPositionChangeEvent();
                            if (scApp.LineBLL.isSegmentPreDisableExcuting())
                            {
                                scApp.LineBLL.BegingOrEndSegmentPreDisableExcute(true);
                            }
                            scApp.getNatsManager().Unsubscriber(SCAppConstants.NATS_SUBJECT_LINE_INFO);
                            logger.Info($"{ SCApplication.ServerName} become {line.ServiceMode}");
                        }
                    }
                    else
                    {
                        if (line.ServiceMode != SCAppConstants.AppServiceMode.Standby)
                        {
                            line.ServiceMode = SCAppConstants.AppServiceMode.Standby;
                            //scApp.VehicleService.UnsubscribePositionChangeEvent();
                            //scApp.getBCFApplication().ShutdownTcpIpSecverListen();
                            logger.Info($"{ SCApplication.ServerName} become {line.ServiceMode}");
                            scApp.getNatsManager().Subscriber(SCAppConstants.NATS_SUBJECT_LINE_INFO, ProcLineInfo, is_last: true);
                            line.ReStartStateMachine();
                        }
                    }
                }
                catch (Exception ex)
                {
                    logger.Error(ex, "Exception");
                }
                finally
                {
                    System.Threading.Interlocked.Exchange(ref syncPoint, 0);
                }
            }
        }