• 发的时候存了redis 里,加过期时间,每次发的时候都有判断有没有这个 key,有就不发,没有就发,并刷新 key。 或者利用 rate limit 也能做。

  • 为啥我觉得一楼比正文好呢 😏

  • 一般 IM 都会用 Erlang 或者 Rust,钉钉完全是用 Java 吗(我就是好奇问问,楼主可以忽略我?

  • Rei 说的是锁 Shell

    Shell.find(params[:id]).lock(:true)

    其他线程还想读的这个 id 的 shell 的话,就要等锁。

    如果你不想锁 Shell 的话,还可以先把 shell 的 book 都创建出来(不给 id),在加 book 的时候,就可以上锁了。

    Redis 的分布式锁,也可以,效果应该是一样的(哦,不是,如果操作时间特别长,redis 好,因为上了 exclusive lock,所有读操作都锁了,redis 分布式锁,只锁了加入 shell 这个操作)

  • 为什么不成功或者失败的时候,jenkins 发个请求?

  • websocket-client-simple,连一两个还好,多了,性能怎么样,就不知道了。

    AC 改的话,先要能主动连 ws,收消息要 hack、发消息也要 hack(AC 是对 channel 发消息,然后做广播,client 不需要),还要再配合 AC 的抽象,还不如自己写。

  • WebSocket 方案选择 at 2019年05月13日

    用 Erlang/Elixir 啊,要不然用 Rust 啊。 我瞎说的,其实 AcitionCable 够用了,实在不行 AnyCable。

  • spring boot 对 sqlite 支持不好,要copy past 一堆代码,很麻烦。RoR 直接引入。

    schema 和 migration 可以没有(我不知道有没有,有你可以说),RoR 默认有。

    console 似乎是有,这个我不确定,但用起来似乎是很麻烦。当然,如果你有更好的办法,我也愿意学习。

    我只是委婉的告诉你,这几点,我认为 spring boot 做的不怎么样。当然,如果你觉得做的好,也请说出你的理由。因为看你之前的回复,你对 Spring Boot 和 RoR 都很了解(因为你说他们一样,所以我认为,你很了解两者),希望可以向你学习。

    难道Java流行只是因为功能太少?

    这种句式一点意义都没有,几十年前还流行打鸡血呢,现在还流行注射中草药呢。

    你说 SB 和 RoR 一样,就举出例子来。你知道 java 为什么流行,就说出来。

    流行本身就没有什么意义,然后抛出了一个疑问句,没有任何依据,就更没意义。

  • 我想知道 sping boot 怎么用 sqlite,schema 在哪,migration 怎么用,console 怎么用。。

  • 牛逼!

    有的时候,人们在谈性能的时候,都忘了说是 IO 密集型,还是 CPU 密集型。

  • 当初定技术栈的时候,为啥选 C?性能原因?

  • Ruby 3 将有类型系统了 at 2019年04月20日

    Ruby 不像 Clojure 对这个东西那么急切(我不是说 Ruby 不需要)。

    Clojure 很需要这个东西,是因为,Clojure 把 map 当对象用,把 map 的字段当方法用,Ruby 有对象,对象有啥方法、字段都是相对明确的。

  • TF 是啥?

  • Will Ruby kill off Python? at 2019年04月12日

    具体说说?

  • ruby-china 的影响力: 如果学习后端技术,最好的方法是 clone ruby-china 论坛。 如果学习前端技术,最好的方法是 clone ruby-china 客户端。 如果想宣传某门语言,最好的方法是,用这门语言做一个论坛。

  • 要改下标题,现在是 5k 了

  • 明白,看来八成是 cpu 密集型任务,多线程没啥意义。亦或是sidkiq 调度多任务的时候,消耗比较大……

  • 我是觉得产品的需求不如用户故事靠谱 😢,不过这个只是我个人经验,可能不是很有参考价值。。。

    推行敏捷、或者项目管理,在软件公司挺难的,教给别人就更不容易了 👍 👍

    大部分的Scrum团队,都只是在玩Scrum过程的团队而已。

    👍 👍

    有的对敏捷了解比较少,有的只是走个过场,却不知道这些工具、方法是为了解决什么问题而存在的。知其然,不知其所以然。

  • 为啥不用多线程做?ruby 多线程不靠谱吗?

  • cucumber 首先是沟通工具,减少产品和开发之间的认知差距。 cucumber 之后才是自动化工具 用 cucumber 的话,就要搭上一个开发,测试搞不定。测试还有其他自动化工具,cucumber 这是看起来对开发友好。

    如果把 cucumber 当沟通工具,写写用户故事就可以了,挺好的。 如果当做自动化工具,只能说仁者见仁了。

  • 那个 gem 还真没了解过 😅

  • 进程调度问题

    给每个用户 100 个额度,用完了再分配。

    第一个和第二个问题 假设 A 算 1000 个单位,就先让他算 100 个,算完了再分给他 100。这个时候,B 进来了,B 插入 100 个任务,B 就会先算完。

    第三个问题 加优先级就可以,爸爸们都放到爸爸队列里,爸爸们有任务,就先算爸爸的。还可以,如果是爸爸,就分配 200 个单位。

    还可以从需求上解决,比如算完 1 个就给反馈什么的。

  • 但说身体这一条,我有一个朋友在大学当老师,一周几节课,身体也不好。。。因为管不住吃、喝,还不运动。

    如果仅仅是身体的话,早睡加上运动,会好很多(不过做到这些也挺难的)。

  • 配置文件有可能热更新么 at 2019年03月16日

    ror 应该是把配置读到某个对象里(ruby 几乎啥都是对象),更新配置,在 reload 这个对象应该就可以了。

    如果有很多服务,有需要有统一的配置,比如 reids、mysql,就用配置中心。觉得配置中心麻烦,可以放到 reids 里。

    关键是内存里的要 refresh,还不如重新部署一次…