• 1 已解决
    0
    两个并发同时请求,修改数据导致数据有一次修改相同的数据

    attachments-2020-03-8xwsbGrD5e6f1f434a35e.png

    加了悲观锁,

    加了泄洪队列,

    加了限流,

    还会出现

  • 1 已解决
    0
    mysql从5.6升级8.0后,sql查询变慢

    听说mysql8比mysql5要快很多,我们就尝试将mysql从5.6升级到8.0,然后有些sql就变慢了

    sql如下:

    SELECT
       a.id AS 'id',
       CONCAT(a.firstname,' ',a.lastname) AS 'name',
       a.name AS fullName,
       a.firstname AS 'firstname',
       a.lastname AS 'lastname',
       a.teaching_style as teachingStyle,
       a.type_of_english as typeOfEnglish,
       a.avatar AS 'avatar',
       a.avatar_url AS 'avatarurl',
       c.course_id AS courseId,
       CONCAT(
       IFNULL(a.favorable_rate, '100'),
       '%'
       ) AS rate,
       f.file_path AS path
      FROM
      busi_teacher a
      LEFT JOIN busi_tea_schedule b  ON a.id = b.tea_id
      LEFT JOIN busi_tea_course c ON (a.id = c.tea_id AND c.issys = 1)
      LEFT JOIN busi_stu_course d ON b.stu_course = d.id
      LEFT JOIN busi_file f ON f.id = a.avatar
      WHERE   b. STATUS = 1
      AND b.can_normal = 1
      AND ( (a.is_fulltime = 1 AND b.is_contracted = 1) OR a.is_fulltime != 1 )
      AND b.ex_schedule_date > DATE_ADD(NOW(), INTERVAL 24 HOUR)
      AND (b.ex_schedule_date < '2019-12-25 08:00:00' OR b.ex_schedule_date > '2019-12-27 07:59:00')
      AND (b.ex_schedule_date < '2020-01-01 08:00:00' OR b.ex_schedule_date > '2020-01-02 07:59:00')
       AND a. STATUS IN (3, 7)
      AND b.del_flag = 0
      AND a.del_flag = 0
      AND a.isuse = 1
      AND (b.stu_course IS NULL OR d.course_status = 3)
      AND  FIND_IN_SET('152',c.course_id)
        AND HOUR(b.ex_schedule_date) < 21
        GROUP BY a.id
      ORDER BY b.is_contracted DESC, a.promoted DESC,(CASE a.is_fulltime WHEN 1 THEN 1 WHEN 0 THEN 2 ELSE 3 END),a.firstname
      LIMIT  10;

    mysql版本5.6.16-log:执行0.157s,explain如下

    up-241e59b6556c3035de3c5b00420006376dd.png

    up-88b6df7fe9fd90c05c914e8763339cd2948.png

    mysql版本8.0.16:执行2.080s,explain如下

    up-06593bfbafd4c908443f2af7f60b1162a2a.png

    up-d0ef442beab9c7849e0f00b3c134489cb5b.png

    mysql8先执行a表,mysql5.6先执行b表。mysql8的Creating sort index花费了99%的时间,我将排序去掉后两个版本都执行一遍后,mysql8是要比mysql5.6要快,但是加上排序后mysql8就很慢了,感觉是在mysql8中排序并没有用到索引。有没有大神能看出来是哪儿出了问题吗,是mysql系统参数设置有问题吗?

  • 1 未解决
    0
    mysql 条件排序写法

    先显示50公里(后台可以设置多少公里)以内,3天(后台可以设置几天)以内发布的动态,要在线的,按距离排序,不按发布的时间,如果3天以内同一个人发布了多条,就只显示这个人最新的一条就可以了,多的就不用显示了, 显示完以后,再显示50公里以外的,1天(后台可以设置几天)以内发布的动态,要在线的,按距离排序,不按发布的时间,如果1天以内同一个人发布了多条,就只显示这个人最新的一条就可以了,多的就不用显示了,最后显示不在线的,按距离显示就行了。(后台要有个设置,男女一天可以查看多少条动态)

  • 1 未解决
    0
    传统项目 连接mysql数据库,无法连接

    传统ssh项目,连接本地mysql数据库,eclipse中,tomcat启动,初始化数据库时无法连接,百思不得解,gogle、百度无解。

    尝试方法:

    1、设置MySQL最大等待时间。

    2、关闭防火墙

    3、重装mysql数据库

    4、…等能查到的都试过了


    原因分析

    项目只有在连接无线时无法连接报错,连接网线时可以启动并访问,排除项目中配置数据库文件的问题。

    把项目打成war包在别人的电脑上启动,无线或者网线均无问题,排除项目代码问题

    我的电脑是刚重装过系统,怀疑是跟电脑那里配置有问题,但是又不知从何查起,求教大家意见,积分不多,都给你们了


    [INFO ] [13:24:33] org.springframework.context.support.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'securityManager' of type [class org.apache.shiro.web.mgt.DefaultWebSecurityManager] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)

    [INFO ] [13:24:34] org.springframework.orm.hibernate5.HibernateTransactionManager - Using DataSource [org.apache.commons.dbcp.BasicDataSource@1687d553] of Hibernate SessionFactory for HibernateTransactionManager

    [ERROR] [13:24:55] org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl - Exception while initializing Database connection

    org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Communications link failure


    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.)

    at org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)

    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)

    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)

    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)

    at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:225)

    at com.sun.proxy.$Proxy59.getMetaData(Unknown Source)

    at org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl.initDatabaseType(ProcessEngineConfigurationImpl.java:686)

    at org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl.initDataSource(ProcessEngineConfigurationImpl.java:636)

    at org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl.init(ProcessEngineConfigurationImpl.java:452)

    at org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl.buildProcessEngine(ProcessEngineConfigurationImpl.java:440)

    at org.activiti.spring.SpringProcessEngineConfiguration.buildProcessEngine(SpringProcessEngineConfiguration.java:65)

    at org.activiti.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:60)

    at org.activiti.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:32)

    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168)

    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103)

    at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1585)

    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:317)

    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)

    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:368)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1123)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)

    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)

    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)

    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)

    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)

    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192)

    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116)

    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014)

    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545)

    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)

    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)

    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)

    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)

    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)

    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)

    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192)

    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116)

    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014)

    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:508)

    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:486)

    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:615)

    at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:169)

    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)

    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:308)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)

    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)

    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)

    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)

    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)

    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)

    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:838)

    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537)

    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)

    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)

    at com.sinosoft.common.BeanFactory.<clinit>(BeanFactory.java:27)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)

    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)

    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1098)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1050)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)

    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)

    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)

    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)

    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)

    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)

    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:838)

    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537)

    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446)

    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328)

    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)

    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5099)

    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5615)

    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)

    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1571)

    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1561)

    at java.util.concurrent.FutureTask.run(FutureTask.java:262)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

    at java.lang.Thread.run(Thread.java:745)

    Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure


    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)

    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)

    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:342)

  • 1 未解决
    0
    mysql查询太慢

    遇到一个mysql查询问题,两条一模一样的sql语句,在测试服务器执行sql语句用了4秒,在生产环境执行sql语句用了120秒,两张表数据基本相同,索引一模一样,请问是什么原因导致生成环境sql执行这么慢。。

    attachments-2020-03-VEpJcnt95e5f78622d5f9.pngattachments-2020-03-aesdhxrm5e5f78677d841.png

    explain

    attachments-2020-03-o6axDtnY5e5f786fd2f2c.png

    attachments-2020-03-HNu5UhNL5e5f78767e1be.png

  • 1 未解决
    0
    有谁做过 给word模板的 复选框自动填充数据

    attachments-2020-03-bsvwca7d5e5e2ad88674f.png

    有谁做过 给word模板的 复选框自动填充数据?这个点击勾选怎么做的

  • 1 未解决
    0
    MySQL可重复读RR,解决了幻读了么?

    RR本事是没有解决幻读的?

    但MySQL解决了幻读问题了么? 怎么解决的?还是接受了幻读问题。

    这块有点晕。

    希望各位大侠能给些点拨。

  • 1 未解决
    0
    数据库已存在的大数据量的表如何进行分表

    由于历史原因,系统中有一张表数据量逐年变大,变到了几千万甚至上亿,这些数据不能像日志一样定时归档和删除,求问怎么做分表?

  • 1 未解决
    0
    大数据hive的权限管理问题

    现在我这边需要针对hive做一个权限管控


    技术预演:

    https://blog.csdn.net/mnasd/article/details/79904061

    我按照上述步骤配置了hive-site.xml

    hive.users.in.admin.role =hive


    我用DG hive用户链接hive后

    set hive.users.in.admin.role;

    set role admin;

    拿到admin角色

    show roles ; 等各种元数据查询操作 OK

    创建了 用户 ceshi 角色ceshirole 赋权了某库某表权限

    但是使用ceshi用户新建链接登录进来之后

    仍然能看到所有表 并且该ceshi用户拥有 2个角色 public 和ceshirole


    这里我就不贴图了,步骤大致是这样搞了一下午。

    请教下 玩过这个东东的大佬

    1 为啥我新建的用户 赋予新建的角色 查看该用户拥有的角色 为何都会默认加上public角色?

    2 hive 能否通过权限管理 做到不同用户连接 看到的表不同?


    后记: 解决了 方式如下:《无法上传文件》


    说明:

    之前我们平台上10.0.8.145上的hive是 所有linux用户访问都能直接对所有的库中所有的表直接进行操作,该文档为将hive配置为可进行用户访问权限控制说明


    参考url

    https://blog.csdn.net/mnasd/article/details/79904061

    https://blog.csdn.net/volitationlong/article/details/81911539


    第一步:


    hive-site.xml配置:


    hive.security.authorization.enabled true hive.server2.enable.doAs false hive.users.in.admin.role hive hive.security.authorization.manager org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactory hive.security.authenticator.manager org.apache.hadoop.hive.ql.security.SessionStateUserAuthenticator

    Ambari 平台按上述添加同样配置


    启动hiveserver2之后

    使用beeline连接测试:

    ./beeline -u jdbc:hive2://192.168.1.148:10000/default -n hive

    Show roles;报错

    Show current roles; public

    set role admin ;

    Show current roles; admin

    新建角色

    create role ceshi0704;

    grant role ceshi0704 to user hive2;

    查看某个用户针对某个库拥有的权限

    show grant user hive2 on database default; 此时为空 未赋权

    ./beeline -u jdbc:hive2://192.168.1.148:10000/default -n hive2

    Select * from test 报错:

    Error: Error while compiling statement: FAILED: HiveAccessControlException Permission denied: Principal [name=hive2, type=USER] does not have following privileges for operation QUERY [[SELECT] on Object [type=TABLE_OR_VIEW, name=shizhan.t_sz]] (state=42000,code=40000)


    – 基于某张表针对用户授权

    grant update on table test to user hive2;

    show grant user hive2 on database default; 此时只有一条记录 表示该用户针对该库该表拥有的权限

    Select * from test ;报错

    grant select on table test to user hive2;

    show grant user hive2 on database default; 2条记录

    Select * from test limit 1 ; 不报错 有记录出现


    至此:

    权限控制完成


    且所有的权限控制的操作的权限数据都会存储在hive配置的关系型元数据库中

  • 1 未解决
    0
    数据结构

    有没有一种结构,相当于一个管子,不断的往里面放数据,最多放100条,如果放到101条,那么第一条自动失效。

  • 1 未解决
    0
    1000并发的情况下,使用什么锁能够最有效最优质的保证数据一致?

    1000并发的情况下,使用什么锁能够最有效最优质的保证数据一致?

    如果有1000并发抢购东西,为了防止并发出现超买或者数据问题。我们有很多的锁可以选择,比如:sych、Reentrantlock等,怎么使用锁,使用什么锁更有保障,性能体验最好?

  • 1 未解决
    0
    布隆过滤器怎么保证数据的实时性?

    下午的时候有看到一堂讲redis缓存穿透的体验课,讲了用布隆过滤器来解决这个问题,想问下布隆过滤器的数据应该是程序启动的时候全表查一次初始化吧? 那后续怎么保证数据是最新的呢?

    例如有两台机器A、B都启动了程序,A初始化布隆过滤器后,B那边insert了一条新的数据,A这边的布隆过滤器是怎么更新的?

  • 1 未解决
    0
    读取2.3G大文件出现数据丢失问题

    问题描述

    读取数据文件,大小为2.3G 2490930748字节 1735516 行
    最后获 2432615350左右 字节的数据 1723238行左右的 数据

    大致缺少了不到1%的数据,求大佬帮忙提供一下思路,到底哪里出问题了。。

    问题出现的环境背景及自己尝试过哪些方法

    使用过 RandomAccessFile 尝试读取,发现读取速度感人0.0(还乱码)如果可以解决读取速度问题(使用异步)就可能出现整行文件被截断和数据混乱的现象。

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    protected Boolean compute() {
    File file = new File(fullFileName);
    BufferedReader reader = null;
    List tasks = new ArrayList();

    	//读取的源文件大小
    	BigDecimal sumReadedSize = BigDecimal.ZERO;
    	long totalFileSize = 0;
    	try {
    
            reader = new BufferedReader( new InputStreamReader(new FileInputStream(file), "GBK"));
    

    //用于看文件实际大小
    RandomAccessFile r = new RandomAccessFile(file, “r”);
    totalFileSize =r.length();

            String lineContent = "";
    		while (reader.ready() && (lineContent = reader.readLine()) != null) {
    

    // if(ForkFileReadTask.getQueuedTaskCount() > 10 || ForkFileReadTask.getPool().getActiveThreadCount() > 100) {
    ForkFileWriteTask fileWriteTask = this.fileSpiltter.spiltForFork(lineContent);//将任务提交pool处理,生产子文件
    if(fileWriteTask != null) {
    tasks.add(fileWriteTask);
    fileWriteTask.fork();
    BigDecimal bigDecimal = new BigDecimal(fileWriteTask.getFileSize());
    sumReadedSize = sumReadedSize.add(bigDecimal);
    }
    }
    } catch (FileNotFoundException e) {
    log.error(“读取源文件错误!”);
    e.printStackTrace();
    } catch (IOException e) {
    log.error(“读取源文件错误!”);
    e.printStackTrace();
    } finally {
    if(reader != null) {
    try {
    reader.close();
    } catch (IOException e) {
    log.error(“关闭源文件流错误!”);
    e.printStackTrace();
    }
    }
    }

    	//实际写入的所有子文件大小之和
    	BigDecimal totalWrittenSize = BigDecimal.ZERO;
    	for(ForkFileWriteTask task : tasks) {
            totalWrittenSize=totalWrittenSize.add(task.join());
    	}
    
    	log.info("读取源文件大小为:{},实际写入文件大小为:{},总文件大小:{}",sumReadedSize.toString(),totalWrittenSize.toString(),totalFileSize);
    	if(sumReadedSize.equals( totalWrittenSize)) {
    		return true;
    	} else {
    		return false;
    	}
    }
    

    你期待的结果是什么?实际看到的错误信息又是什么?

    结果读取的文件大小总是243200000左右与实际文件查了1%不到
    读取源文件大小为:2432615350,实际写入文件大小为:2432615350,总文件大小:2490930748
    做好的结果是找到问题原因,如果找不到至少找一下替代方案~~或者问题可能出在的地方

  • 1 未解决
    0
    存一个有序的数据用LinkedList好还是用LinkedBlockingQueue好

    存一个有序的数据用LinkedList好还是用LinkedBlockingQueue好
    主要是实现数据的有序

  • 1 未解决
    0
    读取2.3G大文件出现数据丢失问题

    问题描述

    读取数据文件,大小为2.3G 2490930748字节 1735516 行

    最后获 2432615350左右 字节的数据 1723238行左右的 数据


    大致缺少了不到1%的数据,求大佬帮忙提供一下思路,到底哪里出问题了。。


    问题出现的环境背景及自己尝试过哪些方法

    使用过 RandomAccessFile 尝试读取,发现读取速度感人0.0(还乱码)如果可以解决读取速度问题(使用异步)就可能出现整行文件被截断和数据混乱的现象。


    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)


    protected Boolean compute() {

    File file = new File(fullFileName);

    BufferedReader reader = null;

    List tasks = new ArrayList();


    //读取的源文件大小

    BigDecimal sumReadedSize = BigDecimal.ZERO;

    long totalFileSize = 0;

    try {


            reader = new BufferedReader( new InputStreamReader(new FileInputStream(file), "GBK"));

    //用于看文件实际大小

    RandomAccessFile r = new RandomAccessFile(file, “r”);

    totalFileSize =r.length();


            String lineContent = "";

    while (reader.ready() && (lineContent = reader.readLine()) != null) {

    //if(ForkFileReadTask.getQueuedTaskCount() > 10 || ForkFileReadTask.getPool().getActiveThreadCount() > 100) {

    ForkFileWriteTask fileWriteTask = this.fileSpiltter.spiltForFork(lineContent);//将任务提交pool处理,生产子文件

    if(fileWriteTask != null) {

    tasks.add(fileWriteTask);

    fileWriteTask.fork();

    BigDecimal bigDecimal = new BigDecimal(fileWriteTask.getFileSize());

    sumReadedSize = sumReadedSize.add(bigDecimal);

    }

    }

    } catch (FileNotFoundException e) {

    log.error(“读取源文件错误!”);

    e.printStackTrace();

    } catch (IOException e) {

    log.error(“读取源文件错误!”);

    e.printStackTrace();

    } finally {

    if(reader != null) {

    try {

    reader.close();

    } catch (IOException e) {

    log.error(“关闭源文件流错误!”);

    e.printStackTrace();

    }

    }

    }


    //实际写入的所有子文件大小之和

    BigDecimal totalWrittenSize = BigDecimal.ZERO;

    for(ForkFileWriteTask task : tasks) {

            totalWrittenSize=totalWrittenSize.add(task.join());

    }


    log.info("读取源文件大小为:{},实际写入文件大小为:{},总文件大小:{}",sumReadedSize.toString(),totalWrittenSize.toString(),totalFileSize);

    if(sumReadedSize.equals( totalWrittenSize)) {

    return true;

    } else {

    return false;

    }

    }

    你期待的结果是什么?实际看到的错误信息又是什么?

    结果读取的文件大小总是243200000左右与实际文件查了1%不到

    读取源文件大小为:2432615350,实际写入文件大小为:2432615350,总文件大小:2490930748

    做好的结果是找到问题原因,如果找不到至少找一下替代方案~~或者问题可能出在的地方

  • 1 未解决
    0
    生成唯一且有序的18位订单号或流水号

    采用什么方式生成唯一且有序的18位订单号或流水号比较好?
    重点是有序

  • 1 未解决
    0
    MySQL可重复读RR,解决了幻读了么?

    RR本事是没有解决幻读的?
    但MySQL解决了幻读问题了么? 怎么解决的?还是接受了幻读问题。
    这块有点晕。
    希望各位大侠能给些点拨。

  • 1 未解决
    0
    定时任务每秒要发送数据到后台。

    车辆网的项目, 单台redis 可以接受多少的 写入请求

  • 1 未解决
    0
    mysql锁机制的相关问题,希望大佬能解答

    萌新关于mysql有几个问题想请问各位大佬,
    1.mysql在RR隔离级别下有MVCC,那还有共享锁吗?感觉MVCC完全可以替代共享锁,在读的时候只看版本号,都不需要加读锁了?在什么情况下是用到锁,什么情况下是用到MVCC?
    2.插入一条新信息的时候,X锁锁住的是什么,不是没有信息吗,那是锁住一条空白行?
    3.InnoDB的行锁是通过给索引上的索引项加锁来实现的,一张表如果没有索引,是不是什么操作都会锁整张表?没有索引的时候,锁的又是什么东西?
    希望各位大佬解答!!!

  • 1 未解决
    0
    多线程数据库事务处理

    题目描述

    多线程数据库事务处理


    题目来源及自己的思路

    比如一次性插入一万条数据,,开10个线程,要么同时成功,要么同时失败,这个如何处理,多线程事务如何回滚