线程应用

/**
         * 扫描存储周期配置变更线程
         *
         */
        new BasicThread("SynchronizeDataRetentionThread")
        {
            @Override
            public void run()
            {
                while (isRun())
                {
                    if (isInited)
                    {
                        /* 如果存储周期整在变化,则不创建区域与预定义对象的表 */
                        if(ReportServerInitializer.isCreateTable())
                        {
                            continue;
                        }
                        try
                        {
                            if (dataRetentionSyn == null)
                            {
                                dataRetentionSyn = new DataRetentionSyn();
                            }

                            if (logger.isDebugEnabled())
                            {
                                logger
                                        .debug("RptServer Thread"
                                                + " is synchronizing table MNT_DATA_RETENTION_TIME ...");
                            }

                            dataRetentionSyn.synchronier();

                        }
                        catch (Throwable e)
                        {
                            if (logger.isErrorEnabled())
                            {
                                logger.error(e.getMessage(), e);
                            }
                        }
                        finally
                        {
                            // 不管建表成功或是失败,则允许其他线程进行建表操作
                            ReportServerInitializer.changeIsCreateTableTo(false);
                        }
                    }

                    this.threadSleep(60 * 1000);
                }
            }

        }.start();

猜你喜欢

转载自sunxuecheng.iteye.com/blog/1178941