batchTask

本文介绍了一个名为 CutOffManager 的批处理任务管理器,该管理器使用 Spring 框架进行任务调度,通过 JobDetailBean 配置 DailyBatchJob 实现定时任务的执行。核心流程包括初始化 registerBatachTaskMap 和通过 cutOff 方法运行具体的 batch task。
CutOffManager(registerBatachTask,cutOff)
1:init method(registerBatachTask Map<string subclass="" batchtask="" taskname="">)
2:org.springframework.scheduling.quartz.JobDetailBean(0 0 5 * * ?)---->DailyBatchJob---->CutOffManager.cutOff---->runBatchTask</string>
class TaskQueueManager : public QObject//负责管理队列的出队进队,管理插入、管理米数、管理换卷的时候需要做的额外的判断 { public: TaskQueueManager(QObject* parent = nullptr); ~TaskQueueManager(); void InitTaskQueueManager(); void EnqueueInsert(const DefectInfoItem& data); void EnqueueUpdateReel(const QSharedPointer<TaskStruct::UpDataByReelTask> task); void EnqueueUpdateMeter(const QSharedPointer<TaskStruct::UpDataByMeterTask> task); QSharedPointer<TaskStruct::DatabaseTaskBase> DequeueTask(); void StartTimers(); void StopTimers(); private slots: void OnInsertTimerTimeout(); void OnMeterTimerTimeout(); private: void FlushInsertQueue(); QString GeneratorTableName(DefectInfoItem& data); private: QQueue<QSharedPointer<TaskStruct::DatabaseTaskBase>> reelQueue; QMutex reelQueueMutex; QQueue<QSharedPointer<TaskStruct::DatabaseTaskBase>> otherQueue; QMutex otherQueueMutex; QQueue<DefectInfoItem>insertQueue;//插入队列 QMutex insertQueueMutex;//插入队列锁 //米数更新用的成员变量 CurrentRunData currentMeterData; QMutex meterDataMutex; bool meterDataDirty = false; QTimer* insertTimer;//插入定时器 QTimer* meterTimer;//米数更新定时器(米数不用接收到就马上执行,而是要等上50毫秒再执行) protected: Q_OBJECT }; TaskQueueManager::TaskQueueManager(QObject* parent) : QObject(parent) { } TaskQueueManager::~TaskQueueManager() { this->StopTimers(); { QMutexLocker locker(&this->insertQueueMutex); if (!this->insertQueue.isEmpty()) { FlushInsertQueue(); } } delete this->insertTimer; delete this->meterTimer; } void TaskQueueManager::InitTaskQueueManager() { qDebug() << QStringLiteral("TaskQueueManager线程:") << QThread::currentThreadId(); this->insertTimer = new QTimer(); this->insertTimer->setInterval(500); this->meterTimer = new QTimer(); this->meterTimer->setInterval(50); connect(this->insertTimer, &QTimer::timeout, this, &TaskQueueManager::OnInsertTimerTimeout); connect(this->meterTimer, &QTimer::timeout, this, &TaskQueueManager::OnMeterTimerTimeout); } void TaskQueueManager::EnqueueInsert(const DefectInfoItem& data) { qDebug() << QStringLiteral("EnqueueInsert线程:") << QThread::currentThreadId(); QMutexLocker locker(&this->insertQueueMutex); this->insertQueue.enqueue(data); qDebug() << this->insertQueue.size(); } void TaskQueueManager::EnqueueUpdateReel(const QSharedPointer<TaskStruct::UpDataByReelTask> task) { QMutexLocker locker(&this->reelQueueMutex); this->reelQueue.enqueue(task); } void TaskQueueManager::EnqueueUpdateMeter(const QSharedPointer<TaskStruct::UpDataByMeterTask> task) { QMutexLocker locker(&this->meterDataMutex); this->currentMeterData = task->currentRunData; this->meterDataDirty = true; } QSharedPointer<TaskStruct::DatabaseTaskBase> TaskQueueManager::DequeueTask() { qDebug() << "reelQueue" << this->reelQueue.size(); qDebug() << "otherQueue" << this->otherQueue.size(); qDebug() << QStringLiteral("DequeueTask线程:") << QThread::currentThreadId(); { QMutexLocker locker(&this->reelQueueMutex); if (!this->reelQueue.isEmpty()) { return this->reelQueue.dequeue(); } } { QMutexLocker locker(&this->otherQueueMutex); if (!this->otherQueue.isEmpty()) { return this->otherQueue.dequeue(); } } return nullptr; } void TaskQueueManager::StartTimers() { qDebug() << QStringLiteral("StartTimers线程:") << QThread::currentThreadId(); this->meterTimer->start(); this->insertTimer->start(); } void TaskQueueManager::StopTimers() { qDebug() << QStringLiteral("StopTimers线程:") << QThread::currentThreadId(); if (this->meterTimer && this->meterTimer->isActive()) { this->meterTimer->stop(); } if (this->insertTimer && this->insertTimer->isActive()) // 修复重复判断 { this->insertTimer->stop(); } } void TaskQueueManager::OnInsertTimerTimeout() { qDebug() << QStringLiteral("OnInsertTimerTimeout线程:") << QThread::currentThreadId(); QMutexLocker locker(&this->insertQueueMutex); if (!insertQueue.isEmpty()) { FlushInsertQueue(); } } void TaskQueueManager::FlushInsertQueue() { qDebug() << QStringLiteral("FlushInsertQueue线程:") << QThread::currentThreadId(); if (this->insertQueue.isEmpty()) { return; } QHash<QString, QQueue<DefectInfoItem>> l_groupedTasks; while (!this->insertQueue.isEmpty()) { auto l_defectInfoItem = this->insertQueue.dequeue(); QString l_tableName = this->GeneratorTableName(l_defectInfoItem); l_groupedTasks[l_tableName].enqueue(l_defectInfoItem); } for (auto it = l_groupedTasks.begin(); it != l_groupedTasks.end(); ++it) { auto l_batchTask = QSharedPointer<TaskStruct::BatchInsertTask>::create(); l_batchTask->defectItems = it.value(); l_batchTask->tableName = it.key(); { QMutexLocker locker(&this->otherQueueMutex); this->otherQueue.enqueue(l_batchTask); } } } QString TaskQueueManager::GeneratorTableName(DefectInfoItem& data) { QString l_timePart = data.startTime; QString l_tableName = "test_defect_table";//QString("reel_%1").arg(l_timePart.replace("-", "").replace(":", "").replace(" ", "").replace(".", "")); return l_tableName; } void TaskQueueManager::OnMeterTimerTimeout() { QSharedPointer<TaskStruct::UpDataByMeterTask> task; { QMutexLocker locker(&meterDataMutex); if (!this->meterDataDirty) { return; } task = QSharedPointer<TaskStruct::UpDataByMeterTask>::create(); task->currentRunData = currentMeterData; this->meterDataDirty = false; } QMutexLocker locker(&otherQueueMutex); this->otherQueue.enqueue(task); } class TaskWorker : public QObject { public: explicit TaskWorker(QObject* parent = nullptr); ~TaskWorker(); void InitTaskWorker(); bool DoInsertNgDataList(const QQueue<DefectInfoItem>& dataList, const QString& tableName); bool DoUpdateReel(CurrentRunData& data); bool DoUpdateMeter(CurrentRunData& data); bool IsDatabaseOpen(); bool OpenDataBaseConnect(); bool CloseConnection(); private: bool ExecuteCommand(QSqlQuery& query); QSqlDatabase taskDB; protected: Q_OBJECT }; TaskWorker::TaskWorker(QObject* parent) : QObject(parent) { } TaskWorker::~TaskWorker() { this->CloseConnection(); } void TaskWorker::InitTaskWorker() { qDebug() << QStringLiteral("InitTaskWorker线程:") << QThread::currentThreadId(); if (!OpenDataBaseConnect()) { qDebug() << QStringLiteral("数据库连接失败!"); } } bool TaskWorker::OpenDataBaseConnect() { ConfigManager* l_configInstance = ConfigManager::GetConfigInstance(); ConfigManager::DAOConfig* l_daoConfig = l_configInstance->GetConfig(); QString l_driverName; switch (l_daoConfig->type) { case ConfigManager::DataBaseType::SQLite: l_driverName = l_driverName = "QSQLITE"; break; case ConfigManager::DataBaseType::MySQL: l_driverName = l_driverName = "QMYSQL"; break; case ConfigManager::DataBaseType::PostgreSQL: l_driverName = l_driverName = "QPSQL"; break; case ConfigManager::DataBaseType::Oracle: l_driverName = l_driverName = "QOCI"; break; default: l_driverName = "QMYSQL"; } if (QSqlDatabase::contains("TaskConnection")) { this->taskDB = QSqlDatabase::database("TaskConnection"); if (this->taskDB.isOpen()) { this->taskDB.close(); } } else { this->taskDB = QSqlDatabase::addDatabase(l_driverName, "TaskConnection"); } if (l_daoConfig->type != ConfigManager::DataBaseType::SQLite) { this->taskDB.setHostName(l_daoConfig->host); this->taskDB.setPort(l_daoConfig->port); } taskDB.setDatabaseName(l_daoConfig->dbName); taskDB.setUserName(l_daoConfig->account); taskDB.setPassword(l_daoConfig->password); if (!taskDB.open()) { QSqlError l_error = taskDB.lastError(); //qDebug() << QStringLiteral("驱动错误:") << l_error.driverText(); //qDebug() << QStringLiteral("错误描述:") << l_error.text(); return false; } else { //qDebug() << QStringLiteral("数据库连接创建成功,线程ID:") << QThread::currentThreadId(); //qDebug() << QStringLiteral("子线程 数据库连接成功"); return true; } qDebug() << QStringLiteral("OpenDataBaseConnect线程:") << QThread::currentThreadId(); } class XZJDATABASE_EXPORT TaskProcessor : public QObject { public: TaskProcessor(QObject* parent = nullptr); ~TaskProcessor(); void InitTaskProcessor(); QSharedPointer<TaskQueueManager> GetTaskQueueManager(); public slots: void StartProcessing(); void StopProcessing(); public slots: void ProcessTask(); private: QSharedPointer<TaskQueueManager> queueManager; // 队列管理器 QSharedPointer<TaskWorker> worker; // 数据库操作实例 QMutex waitMutex; // 等待锁 QWaitCondition waitCondition; // 线程等待条件 std::atomic<bool> isRunning{ false }; // 运行状态 protected: Q_OBJECT }; TaskProcessor::TaskProcessor(QObject* parent) : QObject(parent) { } TaskProcessor::~TaskProcessor() { this->StopProcessing(); } void TaskProcessor::InitTaskProcessor() { qDebug() << QStringLiteral("InitTaskProcessor线程:") << QThread::currentThreadId(); this->queueManager = QSharedPointer<TaskQueueManager>::create(this); this->worker = QSharedPointer<TaskWorker>::create(this); this->queueManager->InitTaskQueueManager(); this->worker->InitTaskWorker(); } QSharedPointer<TaskQueueManager> TaskProcessor::GetTaskQueueManager() { return this->queueManager; } void TaskProcessor::StartProcessing() { this->isRunning = true; this->queueManager->StartTimers(); this->ProcessTask(); } void TaskProcessor::StopProcessing() { this->isRunning = false; this->waitCondition.wakeAll(); this->queueManager->StopTimers(); } void TaskProcessor::ProcessTask() { qDebug() << QStringLiteral("ProcessTask线程:") << QThread::currentThreadId(); while (this->isRunning) { qDebug() << QStringLiteral("ProcessTask 循环执行"); auto task = queueManager->DequeueTask(); if (!task) { qDebug() << "null data"; QMutexLocker locker(&waitMutex); waitCondition.wait(&waitMutex, 50); } else { switch (task->type) { case TaskStruct::TaskType::BatchInsert: { qDebug() << QStringLiteral("TaskStruct::TaskType::BatchInsert 批量插入"); auto bacthInsertTask = task.staticCast<TaskStruct::BatchInsertTask>(); bool success = this->worker->DoInsertNgDataList(bacthInsertTask->defectItems, bacthInsertTask->tableName); if (success) { LOG_INFO("Batch insert completed successfully."); qDebug() << "Batch insert completed successfully."; } else { LOG_ERROR("Batch insert failed."); qDebug() << "Batch insert failed."; } break; } case TaskStruct::TaskType::UpdateReel: { auto reelTask = task.staticCast<TaskStruct::UpDataByReelTask>(); bool success = this->worker->DoUpdateReel(reelTask->currentRunData); if (success) { LOG_INFO("Reel update completed."); } else { LOG_ERROR("Reel update failed."); } break; } case TaskStruct::TaskType::UpdateMeter: { auto meterTask = task.staticCast<TaskStruct::UpDataByMeterTask>(); bool success = this->worker->DoUpdateMeter(meterTask->currentRunData); if (success) { LOG_INFO("Meter update completed."); } else { LOG_ERROR("Meter update failed."); } break; } } } } } //可以选择缓存然后等初始化完成后通过OnThread中进行数据的再次添加 class XZJDATABASE_EXPORT TaskAccessService : public QObject { public: explicit TaskAccessService(QObject* parent = nullptr); ~TaskAccessService() override; void InitTaskAccessService(); void InsertNgData(const DefectInfoItem& data); void UpDateByChangeReel(const CurrentRunData& data); void UpdateByChangeMeter(const CurrentRunData& data); private: QSharedPointer<TaskProcessor> processor; QThread* workerThread; int testcount = 0; protected: Q_OBJECT }; TaskAccessService::TaskAccessService(QObject* parent) : QObject(parent) { } TaskAccessService::~TaskAccessService() { if (this->workerThread && this->workerThread->isRunning()) { this->processor->StopProcessing(); this->workerThread->quit(); this->workerThread->wait(1000); this->workerThread->terminate(); } delete this->workerThread; } void TaskAccessService::InitTaskAccessService() { qDebug() << QStringLiteral("InitTaskAccessService线程:") << QThread::currentThreadId(); this->workerThread = new QThread(); this->processor = QSharedPointer<TaskProcessor>::create(); this->processor->moveToThread(this->workerThread); this->processor->InitTaskProcessor(); connect(workerThread, &QThread::started, processor.data(), &TaskProcessor::StartProcessing); this->workerThread->start(); } void TaskAccessService::InsertNgData(const DefectInfoItem& data) { this->testcount++; this->processor->GetTaskQueueManager()->EnqueueInsert(data); qDebug() << this->testcount; } void TaskAccessService::UpDateByChangeReel(const CurrentRunData& data) { auto task = QSharedPointer<TaskStruct::UpDataByReelTask>::create(); task->currentRunData = data; this->processor->GetTaskQueueManager()->EnqueueUpdateReel(task); } void TaskAccessService::UpdateByChangeMeter(const CurrentRunData& data) { auto task = QSharedPointer<TaskStruct::UpDataByMeterTask>::create(); task->currentRunData = data; this->processor->GetTaskQueueManager()->EnqueueUpdateMeter(task); } void XZJDataBaseModel::Init() { QString configPath = PathManager::GetPathInstance()->GetConfigFilePath(); ConfigManager* l_configInstance = ConfigManager::GetConfigInstance(); l_configInstance->LoadJsonConfig(configPath); ConfigManager::DAOConfig* l_daoConfig = l_configInstance->GetConfig(); PrintRollProductionDAO* l_daoInstance = PrintRollProductionDAO::GetDAOInstance(); l_daoInstance->OpenDataBaseConnect(l_daoConfig->type, l_daoConfig->host, l_daoConfig->port, l_daoConfig->dbName, l_daoConfig->account, l_daoConfig->password); this->taskAccessService = QSharedPointer<TaskAccessService>::create(); this->taskAccessService->InitTaskAccessService(); //this->TestQuery(); this->TestInsert(); } 这些是我优化后的代码,请帮我分析下是否还有问题,以及insert流程能否走通,以及关于Processor中的ProcessTask函数是否有其他方法实现在不用定时器的情况下,以及Service中需要考虑子线程和主线程之间的顺序关系,比如子线程还未初始化,主线程就通过service进行调用接口,并且你不要通过一些比如在未初始化完全前就禁止调用接口的方式来解决这个问题。我的主线程目前就一个创建service对象、初始化service、然后开始调用对象中的函数,其他的你看下分别有哪些问题以及有哪些方法解决?
07-24
17:52:20: Executing ':qljt_cosmic:Application.main()'... Parallel execution is an incubating feature. > Task :qljt_cosmic:compileJava UP-TO-DATE > Task :qljt_cosmic:processResources NO-SOURCE > Task :qljt_cosmic:classes UP-TO-DATE > Task :qljt_cosmic:Application.main() [KDSecurity-warning] VM arguments is not set: -Djava.system.class.loader=kd.bos.security.KDSecurityClassLoader 17:52:22,521 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml] 17:52:22,522 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/D:/QL%20ComicDev/7/mservice/lib/bos/bos-gptas-autoact-7.0.jar!/logback.xml] 17:52:22,532 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs multiple times on the classpath. 17:52:22,532 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs at [jar:file:/D:/QL%20ComicDev/7/mservice/lib/bos/bos-gptas-autoact-7.0.jar!/logback.xml] 17:52:22,532 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs at [jar:file:/D:/QL%20ComicDev/7/mservice/lib/bos/sdk-bos-kingscript-7.0.jar!/logback.xml] 17:52:22,571 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@79d743e6 - URL [jar:file:/D:/QL%20ComicDev/7/mservice/lib/bos/bos-gptas-autoact-7.0.jar!/logback.xml] is not of type file 17:52:22,732 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set 17:52:22,735 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender] 17:52:22,745 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [std] 17:52:22,815 |-WARN in ch.qos.logback.core.ConsoleAppender[std] - This appender no longer admits a layout as a sub-component, set an encoder instead. 17:52:22,815 |-WARN in ch.qos.logback.core.ConsoleAppender[std] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder. 17:52:22,815 |-WARN in ch.qos.logback.core.ConsoleAppender[std] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details 17:52:22,816 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to ERROR 17:52:22,816 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [std] to Logger[ROOT] 17:52:22,828 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [org.eclipse.jetty.*] to ERROR 17:52:22,828 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting additivity of logger [org.eclipse.jetty.*] to false 17:52:22,828 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [std] to Logger[org.eclipse.jetty.*] 17:52:22,828 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting level of logger [AutoAct] to INFO 17:52:22,828 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - Setting additivity of logger [AutoAct] to false 17:52:22,828 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [std] to Logger[AutoAct] 17:52:22,828 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration. 17:52:22,829 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@776802b0 - Registering current configuration as safe fallback point I> Using policy access restrictor jar:file:/D:/QL%20ComicDev/7/mservice/lib/bos/bos-monitor-7.0.jar!/bos-monitor/jmx/jolokia-restrictions.xml -----log.config value----- <?xml version="1.0" encoding="UTF-8" ?> <!--30 seconds scan="true" scanPeriod="1 minutes" --> <configuration> <property name="LOG_HOME" value="../logs"/> <appender name="metric" class="kd.bos.metric.instruments.logback.MetricAppender"> </appender> <appender name="stdot" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%d{HH:mm:ss} [%thread] %level %logger.%M\(%L\):%m%n</pattern> </layout> </appender> <appender name="kafka" class="kd.bos.logging.console.slf4j.logback.KafkaAppender"> <topic>ql-uatenv-log</topic> <brokerList>172.16.30.25:9092</brokerList> <compressionType>none</compressionType> <syncSend>false</syncSend> <keySerializerClass>org.apache.kafka.common.serialization.StringSerializer</keySerializerClass> <valueSerializerClass>org.apache.kafka.common.serialization.StringSerializer</valueSerializerClass> </appender> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/log.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${LOG_HOME}/log.%i.log.gz </fileNamePattern> <minIndex>1</minIndex> <maxIndex>20</maxIndex> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>20MB</maxFileSize> </triggeringPolicy> <encoder> <pattern>%date [%thread] %-5level %logger{10} [%file:%line] %msg%n </pattern> </encoder> </appender> <logger name="org.apache" additivity="false" level="ERROR"> <appender-ref ref="stdot" /> </logger> <logger name="org.javaswift.joss.command.impl.core.AbstractCommand" additivity="false" level="OFF"> <appender-ref ref="stdot" /> </logger> <logger name="kd.bos.dc.utils.AccountUtils" additivity="false" level="ERROR"> <appender-ref ref="kafka" /> </logger> <root level="INFO"> <appender-ref ref="kafka" /> <appender-ref ref="file" /> </root> </configuration> -----log.config doConfigure success-----,fori=0,oldStatusListSize=22,newStatusListSize=52 17:52:29 [main] INFO kd.bos.mservice.service.MServiceStartService.start(101): MServiceStartService started, cost:1477ms. 17:52:29 [startEyeConfigService-thread/traceId:c2adef72ee81d47/time:1751881947424] INFO kd.bos.eye.service.EyeServerService.lambda$startEyeConfigService$0(126):{traceId:c2adef72ee81d47} EyeConfigService start completed ... 17:52:30 [main] INFO kd.bos.mservice.MServiceDefineService.registerServiceAndConsumer(148): regisger service: invoke.service interface=kd.bos.service.InvokeService class=kd.bos.service.invoke.InvokeServiceImpl transProtocolType=rpc 17:52:30 [main] INFO kd.bos.mservice.MServiceDefineService.registerServiceAndConsumer(156): regisger consumer: InvokeService.consumer interface=kd.bos.service.InvokeService transProtocolType=rpc 17:52:30 [main] INFO kd.bos.mservice.MServiceDefineService.registerServiceAndConsumer(148): regisger service: invoke.service interface=kd.bos.service.InvokeService class=kd.bos.service.invoke.InvokeServiceImpl transProtocolType=http 17:52:30 [main] INFO kd.bos.mservice.MServiceDefineService.registerServiceAndConsumer(156): regisger consumer: InvokeService.consumer interface=kd.bos.service.InvokeService transProtocolType=http 17:52:30 [main] ERROR stdot.initRegion(196): initRegion error,region=base,mq error: Can't init consumer by class kd.bos.permission.log.PermLogConsumer,queue=perm_log_service 17:52:30 [main] ERROR stdot.initRegion(196): initRegion error,region=mc,mq error: Can't init consumer by class kd.bos.mc.service.UpgradeConsumer,queue=upgrade_service mq error: Can't init consumer by class kd.bos.mc.datacenter.async.ExecuteDataBaseConsumer,queue=kd.mc.mc.exeDataBase_service 17:52:30 [main] ERROR stdot.initRegion(196): initRegion error,region=pea,mq error: Can't init consumer by class kd.bos.pea.consumer.DeliveryConsumer,queue=delivery_queue mq error: Can't init consumer by class kd.bos.pea.consumer.GenBillsConsumer,queue=GenBills_queue 17:52:30 [main] ERROR stdot.initRegion(196): initRegion error,region=scmc,mq error: Can't init consumer by class kd.scmc.conm.business.mq.RecordConsumer,queue=kd.scmc.conm.framework.mq.record 17:52:30 [main] ERROR stdot.initRegion(196): initRegion error,region=fi,mq error: Can't init consumer by class kd.fi.frm.mservice.balance.BalanceReCalculateConsumer,queue=fi.frm.balancecalc_queue mq error: Can't init consumer by class kd.fi.fa.mservice.fa.FaDepreForecastConsumer,queue=fi.fa.depre_forecast_queue mq error: Can't init consumer by class kd.fi.ai.formplugin.ReconciliationService,queue=fi.ai.checkaccount_queue mq error: Can't init consumer by class kd.fi.pa.jms.PAManualDataSyncMsgConsumer,queue=kd.fi.pa.appstart.manual_data_queue mq error: Can't init consumer by class kd.fi.pa.jms.PAAutoDataSyncMsgConsumer,queue=kd.fi.pa.appstart.auto_data_queue mq error: Can't init consumer by class kd.fi.er.ext.consumer.TripReqBillSubmitConsumer,queue=fi.er.ext.tripReqBill.submit mq error: Can't init consumer by class kd.fi.er.ext.consumer.TripReqBillDeleteConsumer,queue=fi.er.ext.tripReqBill.delete mq error: Can't init consumer by class kd.fi.er.business.messagepublish.consumer.TripReqBillPushConsumer,queue=fi.er.business.tripReqBill.push mq error: Can't init consumer by class kd.fi.er.ext.consumer.TripLoanBillSubmitConsumer,queue=fi.er.ext.tripLoanBill.submit mq error: Can't init consumer by class kd.fi.er.ext.consumer.TripLoanBillDeleteConsumer,queue=fi.er.ext.tripLoanBill.delete mq error: Can't init consumer by class kd.fi.er.ext.consumer.TripReimburseBillSubmitConsumer,queue=fi.er.ext.tripReimburseBill.submit mq error: Can't init consumer by class kd.fi.er.ext.consumer.TripReimburseBillDeleteConsumer,queue=fi.er.ext.tripReimburseBill.delete mq error: Can't init consumer by class kd.fi.er.ext.consumer.TripAttachmentUploadConsumer,queue=fi.er.ext.tripAttachment.upload mq error: Can't init consumer by class kd.fi.er.business.trip.consumer.TripOrderConsumer,queue=fi.er.trip.order.recevie mq error: Can't init consumer by class kd.fi.er.business.trip.consumer.TripUserConsumer,queue=fi.er.trip.user.send mq error: Can't init consumer by class kd.fi.er.ext.consumer.DailyLoanBillApproveConsumer,queue=fi.er.ext.dailyLoanBill.approval mq error: Can't init consumer by class kd.fi.er.ext.consumer.DailyReimburseBillApproveConsumer,queue=fi.er.ext.dailyReimburseBill.approval mq error: Can't init consumer by class kd.fi.er.business.messagepublish.consumer.ReimburseBillSubmitChangeOrderConsumer,queue=fi.er.tripReimburseBill.submit.changeorder mq error: Can't init consumer by class kd.fi.er.business.messagepublish.consumer.ReimburseBillAuditChangeOrderConsumer,queue=fi.er.tripReimburseBill.audit.changeorder mq error: Can't init consumer by class kd.fi.aef.message.consumer.ArchiveMessageConsumer,queue=aef_archive_queue mq error: Can't init consumer by class kd.fi.cal.mservice.mq.SyncMessageConsumer,queue=fi.cal.sync mq error: Can't init consumer by class kd.fi.pa.jms.SSCManualDataSyncMsgConsumer,queue=kd.fi.pa.api.scc.manaul_push_data_queue mq error: Can't init consumer by class kd.fi.ict.consumer.CheckRelrecordConsumer,queue=fi.ict.relrecord_queue mq error: Can't init consumer by class kd.fi.ict.consumer.CheckRelrecordConsumer,queue=fi.ict.relrecord_queue mq error: Can't init consumer by class kd.fi.gl.voucher.jms.VoucherRuleConsumer,queue=fi.gl.voucherrule_queue mq error: Can't init consumer by class kd.fi.iep.mq.IntellExceSchemaConsumer,queue=kd.fi.iep.IntellExceSchema_queue mq error: Can't init consumer by class kd.fi.frm.formplugin.SmallTaskReconDetailService,queue=fi.frm.smalltask_queue_detail mq error: Can't init consumer by class kd.fi.fa.mservice.fa.FaDepreBookConsumer,queue=kd.fi.fa.depre_book_queue 17:52:30 [main] ERROR stdot.initRegion(196): initRegion error,region=swc,mq error: Can't init consumer by class kd.swc.hsbs.business.mq.SWCBizCommConsumer,queue=kd.swc.hsbs.bizcomm_queue mq error: Can't init consumer by class kd.swc.hcss.business.mq.IncomeBillActivityConsumer,queue=kd.swc.hcss.message.hractivity_hcss_queue mq error: Can't init consumer by class kd.swc.hscs.business.mq.AttDataIntegrateConsumer,queue=kd.swc.hscs.attdataintegrate_queue mq error: Can't init consumer by class kd.swc.hscs.business.mq.AfterTaxCalConsumer,queue=kd.swc.hscs.aftertaxcal_queue 17:52:30 [main] ERROR stdot.initRegion(196): initRegion error,region=ssc,mq error: Can't init consumer by class kd.ssc.hstc.business.mq.HSTCBizCommConsumer,queue=kd.ssc.hstc.bizcomm_queue mq error: Can't init consumer by class kd.ssc.hstc.business.mq.TaskDataSyncConsumer,queue=kd.ssc.hstc.taskdatasync_queue 17:52:30 [main] ERROR stdot.initRegion(196): initRegion error,region=hrmp,mq error: Can't init consumer by class kd.hr.hrcs.bussiness.mq.HRCSBizCommConsumer,queue=kd.hr.hrcs.bizcomm_queue mq error: Can't init consumer by class kd.hr.haos.bussiness.mq.HAOSBizCommConsumer,queue=kd.hr.haos.bizcomm_queue 17:52:31 [main] ERROR stdot.initRegion(196): initRegion error,region=tsc,mq error: Can't init consumer by class kd.tsc.tsrbd.business.mq.TSRBDBizCommConsumer,queue=kd.tsc.tsrbd.bizcomm_queue 17:52:31 [main] ERROR stdot.initRegion(196): initRegion error,region=ismc,mq error: Can't init consumer by class kd.ismc.dim.mq.consumer.SocketConsumer,queue=ismc.dim.socket_queue mq error: Can't init consumer by class kd.ismc.dim.mq.consumer.OfdConsumer,queue=ismc.dim.ofd_queue mq error: Can't init consumer by class kd.ismc.dim.mq.consumer.SealConsumer,queue=ismc.dim.seal_queue mq error: Can't init consumer by class kd.ismc.dim.mq.consumer.DimConsumer,queue=ismc.dim.dim_queue 17:52:31 [main] ERROR stdot.initRegion(196): initRegion error,region=imc,mq error: Can't init consumer by class kd.imc.rim.mq.consumer.RimConsumer,queue=imc.rim.rim_queue mq error: Can't init consumer by class kd.imc.rim.mq.consumer.InputConsumer,queue=imc.rim.input_queue 17:52:31 [main] ERROR stdot.initRegion(196): initRegion error,region=mmc,mq error: Can't init consumer by class kd.pmc.pmpd.mq.consumer.BatchTaskConsumer,queue=kd.mmc.pmpd.business.batchtask.task_queue 17:52:31 [main] ERROR stdot.initRegion(196): initRegion error,region=wtc,mq error: Can't init consumer by class kd.wtc.wtbs.bussiness.mq.WTBSBizCommConsumer,queue=kd.wtc.wtbs.bizcomm_queue 17:52:31 [main] ERROR stdot.initRegion(196): initRegion error,region=hr,mq error: Can't init consumer by class kd.hr.hpfs.bussiness.mq.HPFSBizCommConsumer,queue=kd.hr.hpfs.bizcomm_queue mq error: Can't init consumer by class kd.sihc.soecadm.business.message.consumer.AppremPersonChangeNoticCallBack,queue=kd.hr.soecadm.soecadm_apprem_notice_result_queue mq error: Can't init consumer by class kd.sihc.soecadm.business.message.consumer.AppremPersonChangeEffectCallBack,queue=kd.hr.soecadm.soecadm_apprem_result_queue mq error: Can't init consumer by class kd.hr.ham.business.mq.consumer.DispatchRecordInitConsumer,queue=kd.hr.ham.ham_init_dispatchrecord_queue 17:52:31 [main] ERROR stdot.initRegion(196): initRegion error,region=sit,mq error: Can't init consumer by class kd.sit.sitbs.business.mq.SITBizCommConsumer,queue=kd.sit.sitbs.bizcomm_queue mq error: Can't init consumer by class kd.sit.sitbs.business.mq.DataRetentionConsumer,queue=sitbs_privacy_queue mq error: Can't init consumer by class kd.sit.sitcs.business.mq.BatchSocialDclConsumer,queue=kd.sit.sitcs.sitcs_batchdcl_queue mq error: Can't init consumer by class kd.sit.sitcs.business.mq.TaxCalConsumer,queue=kd.sit.sitcs.taxcal_queue 17:52:31 [main] ERROR stdot.initRegion(196): initRegion error,region=tmc,mq error: Can't init consumer by class kd.tmc.bei.mservice.MQ.MatchScheduleConsumer,queue=kd.tmc.bei.match mq error: Can't init consumer by class kd.tmc.tda.mservice.MQ.TdCostScheduleConsumer,queue=kd.tmc.tda.tdcostchedule mq error: Can't init consumer by class kd.tmc.fcs.mservice.MQ.RiskTradeConsumer,queue=kd.tmc.fcs.risktrade 17:52:32 [main] ERROR stdot.initRegion(196): initRegion error,region=tdc,mq error: Can't init consumer by class kd.tdc.tdcs.bussiness.mq.TDCSBizCommConsumer,queue=kd.tdc.tdcs.bizcomm_queue 17:52:32 [main] ERROR stdot.initRegion(196): initRegion error,region=sihc,mq error: Can't init consumer by class kd.sihc.soebs.business.mq.SIHCBizCommConsumer,queue=kd.sihc.soebs.bizcomm_queue mq error: Can't init consumer by class kd.sihc.soebs.business.message.consumer.CadreFileInitConsumer,queue=soecadm_init_cadrefile_queue mq error: Can't init consumer by class kd.sihc.soefam.business.message.consumer.InitFilPerDataConsumer,queue=soefam_init_filper_queue 17:52:32 [main] ERROR stdot.initRegion(196): initRegion error,region=opmc,mq error: Can't init consumer by class kd.opmc.pbs.business.application.impl.mq.OpmcCommonConsumer,queue=kd.opmc.pbs.bizcommon_queue mq error: Can't init consumer by class kd.opmc.pbs.business.application.impl.mq.StartProcessConsumer,queue=opmc_pbs_startprocess_queue mq error: Can't init consumer by class kd.opmc.pbs.business.application.impl.mq.SubmitTaskConsumer,queue=opmc_pbs_submittask_queue 17:52:32 [main] ERROR stdot.initRegion(196): initRegion error,region=hdtc,mq error: Can't init consumer by class kd.hdtc.hrdbs.business.mq.HDTCBizCommConsumer,queue=kd.hdtc.hrdbs.bizcomm_queue 17:52:32 [main] ERROR stdot.initRegion(196): initRegion error,region=odc,mq error: Can't init consumer by class kd.hr.homs.bussiness.mq.HOMSBizCommConsumer,queue=kd.hr.homs.bizcomm_queue 17:52:32 [main] ERROR stdot.initRegion(196): initRegion error,region=epm,mq error: Can't init consumer by class kd.epm.eb.common.mq.consumer.CalcConsumer,queue=kd.epm.eb.calc 17:52:32 [main] ERROR stdot.initRegion(196): initRegion error,region=hwsync,mq error: Can't init consumer by class kd.hr.hers.business.imports.helper.HwSyncMQConsumer,queue=hwsync_queue 17:52:32 [main] ERROR stdot.initRegion(196): initRegion error,region=importservice,mq error: Can't init consumer by class kd.hr.hers.business.imports.helper.ImportServiceMQConsumer,queue=importservice_queue 17:52:32 [main] ERROR stdot.initRegion(196): initRegion error,region=importcommon,mq error: Can't init consumer by class kd.hr.hers.business.imports.helper.ImportCommonMQConsumer,queue=importcommon_queue 17:52:32 [main] ERROR stdot.initRegion(196): initRegion error,region=hwquitsync,mq error: Can't init consumer by class kd.hr.hers.business.imports.helper.HwQuitSyncMQConsumer,queue=hwquitsync_queue 17:52:32 [main] INFO kd.bos.mservice.HealthService.start(50): HealthService started 17:52:32 [main] INFO kd.bos.kdtx.server.service.TCRegisterService.info(39): dtx server register start. 17:52:32 [main] INFO kd.bos.kdtx.server.service.TCRegisterService.info(39): this node is a dtx server. 17:52:32 [main] INFO kd.bos.kdtx.server.service.TCRegisterService.info(39): dtx server register finish. 17:52:32 [main] INFO kd.bos.kdtx.server.service.TCRegisterService.info(39): dtx server register end. 17:52:32 [RedisCompeteElector-DLock.clean_elector] INFO kd.bos.framework.lifecycle.dlock.DLockCleanService.notifyMaster(40): DLock.clean_elector notifyMaster start. 17:52:32 [RedisCompeteElector-DLock.clean_elector] INFO kd.bos.framework.lifecycle.dlock.DLockCleanService.notifyMaster(45): DLock.clean_elector notifyMaster end. 17:52:32 [HAService-start/traceId:3f3e98537621c469/time:1751881952058] INFO kd.bos.ha.HAService.lambda$start$0(58):{traceId:3f3e98537621c469} HaWatchService Started successfully 17:52:33 [Preheat-MVCService/traceId:b983fd6ca3417d89/time:1751881953785] INFO kd.bos.mvc.MVCService.start(85):{traceId:b983fd6ca3417d89} MVCService.Starting 17:52:33 [Preheat-DataPreHeatService/traceId:76b581bbcf8ba1d2/time:1751881953786] INFO kd.bos.mservice.preheat.DataPreHeatService.start(35):{traceId:76b581bbcf8ba1d2} Preheating basedata... 17:52:33 [Preheat-DataPreHeatService/traceId:76b581bbcf8ba1d2/time:1751881953786] INFO kd.bos.mservice.preheat.DataPreHeatService.start(49):{traceId:76b581bbcf8ba1d2} Preheat basedata finish(has not preheat config) 17:52:33 [Preheat-DataSourcePreheatService/traceId:75dd1766204ece13/time:1751881953789] INFO kd.bos.framework.preheat.DataSourcePreheatService.start(42):{traceId:75dd1766204ece13} Preheating Datasource, IDService and ORM. 17:52:33 [Lifecycle-start-service] INFO kd.bos.schedule.executor.ExecutorService.<init>(114): Schedule***ExecutorService create ! classname : zk executor service 17:52:34 [Lifecycle-start-service-3] ERROR kd.bos.framework.resource.ResourceRecycleService.start(39): start recycle task exception,class kd.bos.algo.storage.ceph.CephResourceRecycle kd.bos.exception.KDException: ϵͳ�ڲ��쳣�� at kd.bos.framework.resource.ResourceRecycleImpl.start(ResourceRecycleImpl.java:45) at kd.bos.framework.resource.ResourceRecycleService.start(ResourceRecycleService.java:35) at kd.bos.framework.lifecycle.LifecycleManager$2.run(LifecycleManager.java:140) at java.lang.Thread.run(Thread.java:750) 17:52:34 [Lifecycle-start-service-0] INFO kd.bos.schedule.executor.ExecutorService.registerWorkConsumer(158): Schedule***Executor server name is 10.20.53.193 17:52:34 [Lifecycle-start-service-0] INFO kd.bos.schedule.executor.ExecutorService.registHandler(381): Schedule***handler��ִ����ע�᣺BizJobHandler 17:52:34 [Lifecycle-start-service-0] INFO kd.bos.schedule.executor.ExecutorService.prepareToCustomerMessage(343): Schedule***��ʼע������ 17:52:34 [Lifecycle-start-service-0] INFO kd.bos.schedule.executor.ExecutorService.prepareToCustomerMessage(345): Schedule***������Ϣ���ͣ�REALTIMEJOB�������ߺͶ�Ӧ���̳߳� 17:52:34 [Lifecycle-start-service-0] INFO kd.bos.schedule.message.AbstractService.getThreadPool(294): Schedule***��̨����ִ���߳���:8 17:52:34 [Lifecycle-start-service-0] INFO kd.bos.schedule.executor.ExecutorService.registHandler(381): Schedule***handler��ִ����ע�᣺BizJobHandler 17:52:34 [Lifecycle-start-service-0] INFO kd.bos.schedule.executor.ExecutorService.prepareToCustomerMessage(343): Schedule***��ʼע������ 17:52:34 [Lifecycle-start-service-0] INFO kd.bos.schedule.executor.ExecutorService.prepareToCustomerMessage(345): Schedule***������Ϣ���ͣ�BIZJOB�������ߺͶ�Ӧ���̳߳� 17:52:34 [Lifecycle-start-service-0] INFO kd.bos.schedule.message.AbstractService.getThreadPool(294): Schedule***��̨����ִ���߳���:8 17:52:34 [Lifecycle-start-service-0] INFO kd.bos.schedule.executor.ExecutorService.registHandler(381): Schedule***handler��ִ����ע�᣺BroadcastJobHandler 17:52:34 [Lifecycle-start-service-0] INFO kd.bos.schedule.executor.ExecutorService.prepareToCustomerMessage(343): Schedule***��ʼע������ 17:52:34 [Lifecycle-start-service-0] WARN kd.bos.schedule.executor.ExecutorService.prepareToCustomerMessage(349): Schedule***�����в�֧���������͵���Ϣ,���� 17:52:34 [Lifecycle-start-service-0] INFO kd.bos.schedule.executor.ExecutorService.registHandler(359): Schedule***handler��ִ����ע�᣺WfJobHandler 17:52:34 [Lifecycle-start-service-0] INFO kd.bos.schedule.executor.ExecutorService.prepareToCustomerMessage(343): Schedule***��ʼע������ 17:52:34 [Lifecycle-start-service-0] INFO kd.bos.schedule.executor.ExecutorService.prepareToCustomerMessage(345): Schedule***������Ϣ���ͣ�WorkFlowJOB�������ߺͶ�Ӧ���̳߳� 17:52:34 [Lifecycle-start-service-0] INFO kd.bos.schedule.message.AbstractService.getThreadPool(294): Schedule***��̨����ִ���߳���:20 17:52:34 [Lifecycle-start-service-0] INFO kd.bos.schedule.executor.ExecutorService.register(299): Schedule***executor Server [zk executor service] register is successful! Arthas server agent start... 17:52:56 [Preheat-MVCService] ERROR org.apache.zookeeper.server.NIOServerCnxnFactory.lambda$static$0(85): Thread Thread[Preheat-MVCService,5,main] died kd.sdk.kingscript.exception.ScriptException: Lib file does not exists: path=/@cosmic/bos-framework/@env/initialize, scriptStore={mixed=true, store=KingScriptStore, fileStore=ScriptFileStore}, modules=[], script_modules=[] at kd.sdk.kingscript.lib.AbstractLibFileSystem.doNewByteChannel(AbstractLibFileSystem.java:199) at kd.sdk.kingscript.lib.AbstractLibFileSystem.newByteChannel(AbstractLibFileSystem.java:127) at kd.sdk.kingscript.engine.KingScriptEngineImpl.evalPath(KingScriptEngineImpl.java:692) at kd.sdk.kingscript.engine.KingScriptEngineImpl.evalPath(KingScriptEngineImpl.java:683) at kd.sdk.bos.launch.ProjectInitializer.runInitializeScript(ProjectInitializer.java:287) at kd.sdk.bos.launch.ProjectInitializer.initialize(ProjectInitializer.java:178) at kd.sdk.bos.launch.ProjectInitializer.initialize(ProjectInitializer.java:149) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at kd.bos.script.ProjectInitializerManager.initialize(ProjectInitializerManager.java:26) at kd.bos.mvc.MVCService.start(MVCService.java:91) at kd.bos.framework.lifecycle.PreHeatService.lambda$null$0(PreHeatService.java:56) at kd.bos.threads.impl.RequestContextRunnable.run(RequestContextRunnable.java:59) at kd.bos.thread.ThreadLifeCycleManager$RunnableWrap.run(ThreadLifeCycleManager.java:270) at java.lang.Thread.run(Thread.java:750) 有哪些问题
07-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值