奇葩面试官的问题总结

场景:

奇葩面试
分为数据库、技术点、框架、管理吐槽


数据库

  1. 如现有一个人员表,要随机安排人员去做任务,任务有开始时间和结束时间,同一个人可以安排多次任务,但是一个时间段内不能出现重复重叠等情况,那么选择人员的时候如何安排人员呢,也就是说怎么查询出当前没有任务的人员呢:

    分析:根据问题我们也已经基本明确了,剩下就是sql了,大概解决如下:

    用户表:
    在这里插入图片描述
    用户和任务关联表,
    在这里插入图片描述
    任务表暂时就不关联了
    根据任务表开始时间和结束时间查询当前正在执行任务的人(如任务开始时间在2022-05-13 10:00:00,结束时间为2022-05-13 12:00:00,在任务关联表中查询结束时间大于2022-05-13 10:00:00的任务),sql如下:

SELECT * FROM project_user WHERE end_time > '2022-05-13 10:00:00'

结果如下:
在这里插入图片描述
查询到user_id为2的用户正在执行任务,并且结束时间为2022-05-13 12:32:41,所以给人员安排任务的时候只能在其它人员中选择,不能给user_id为2的人员安排,因为他正在做任务。则查询当前没有任务的人员sql:

SELECT * FROM user u WHERE u.id NOT IN (
SELECT user_id FROM project_user WHERE end_time > '2022-05-13 10:00:00'
)

在这里插入图片描述

这种使用not in查询
第二种查询,使用BETWEEN,AND,我就搞不懂我说这两个关键字的时候有些面试官语气很惊讶还带着疑问,这两个就不能用了?眼睛睁大吧

SELECT * FROM project_user WHERE end_time BETWEEN '2022-05-13 10:00:00' AND '2022-05-13 13:00:00'

在这里插入图片描述
这种也能查询到当前时间段范围内正在做任务的人员
剩下关联用户表的出没有任务人员和上边则是一样
你还张口就来,还有交集,并集,包含,被包含,我特么都无语了,我就说之前写的业务接口也没见每天有人反映任务计划安排出错了啊,怎么到这儿这个东西就变的这么复杂了呢,真是啥人都能当面试官。


技术点

  1. http接口请求和响应
    原题:当你调用接口给别人发送数据时,如果遇到网络异常或者其它情况,导致发送数据给别人成功,但是接口返回状态你没有收到获取到,或者返回出现异常情况,也就是A调用B接口,B接口收到数据,但是A没有收到接口返回信息,这种时候怎么解决。
    答案:此处我们只说明接口,不说失败了添加接口调用记录,或者打电话这种情况。我觉的正常接口调用失败了那肯定需要重新发送请求给B了,不发等着B手动处理?处理完了给你打电话?然后你重新改状态?如果后边还有流程,难道手动改流程?那肯定就是要重新调用接口啊,这就相当于重试么,不然还能怎么搞,重试两三次还是失败这肯定就是B接口出现了问题,肯定要联系B去修改,等B处理完了重新调用,不然还能怎么办?
    我其实很好奇问这种问题的面试官,到底是想问啥?想问接口设计还是说接口出错解决方案,正常人肯定会联系对方协调解决啊(自己就算倒腾到死,接口收不到信息搞哪些有毛用,怪不得面试的时候领导来电话都不敢挂。),如果你想问接口设计,那我觉得你应该问你们是怎么调用第三方接口的,如果第三方接口没有返回接口信息怎么办,这种接口设计的时候怎么避免接口发送数据失败再次发送呢,这种很明显就是看大家除了http外还有没有用别的数据发送的,我觉可能是像mq这种是比较好的。

  2. 多线程
    这种问题我都不知道怎么说了,原题就是多线程7个参数是啥,我觉的大家一般关注的就是线程池初始化创建的线程数、最小线程数,空闲的线程数这三个吧。写到这儿的时候我查了一下才发现这好多些参数我竟然都没见过,哎,多线程用的不多但是这几年下来也不少了,然后问题来了:如果你创建了十个线程,但是程序执行的过程中这十个线程都在执行(线程爆满),但是有新的线程怎么办?然后如何释放多余的线程,如何创建新的线程让程序使用,emmm,接触到了新天地。

  3. 当程序出错导致无限循环卡住不能正常使用时如何解决,能有啥办法呢,重启生产服务么,还能怎么办(开发环境继续调试找原因么),啥?不能随便重启?重启可能导致数据丢失造成不可逆的问题,这肯定会有数据丢失,就算是多台服务器也避免不了,最少丢失一个业务数据,你不重启那就不用了吧,别说等你解决了再重启,客户能等住么,想不通问这种问题的重点到底在哪儿呢?

管理

  1. 如果当前有个项目,你如何排期,如何保证在排期内完成,如果排期内因为特殊情况导致临期但是无法完成如何解决。
    排期:首先需要熟读需求,设计出项目整体流程、项目模块划分、模块具体功能描述。然后小组内对需求模块进行评估,根据小组人员配置进行模块功能分配,然后得出具体排期。你非要说还剩一个月现在项目无法完成怎么办,那只能加班了还能咋,有没有其它办法?除了加班还能咋,难道不干了放着?现在真是啥人都有,就盼着完不成了?

欢迎下方留言,说的不对的地方欢迎指正,有新的方案欢迎提供。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值