不应该吧,这个用 rails 也不应该是这效果。应该有别的问题。
你的前端也尽量把大文件分片上传吧,还可以断点续传。
请举例子,没赶脚呀
为这键盘点赞
@adamshen 来战一下?随时欢迎。里面很多解决性能的小 trick。比如分页,用 paginate?或者 kaminary?这些是否有性能问题,我们的代码都有解决。
顶一下,prism 的代码是非常优秀的。展示一下代码行数,注意测试和代码的比例。 想玩大数据量应用的,这里很合适,绝不是一个 startup 项目的那种不顾性能的代码。
+----------------------+-------+-------+---------+---------+-----+-------+
| Name | Lines | LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Controllers | 8871 | 7469 | 102 | 823 | 8 | 7 |
| Helpers | 2309 | 1960 | 2 | 227 | 113 | 6 |
| Models | 29324 | 23043 | 415 | 2629 | 6 | 6 |
| Libraries | 10119 | 7971 | 175 | 928 | 5 | 6 |
| Functional tests | 326 | 274 | 4 | 24 | 6 | 9 |
| Unit tests | 0 | 0 | 0 | 0 | 0 | 0 |
| Controller specs | 12005 | 10352 | 0 | 37 | 0 | 277 |
| Helper specs | 575 | 487 | 0 | 4 | 0 | 119 |
| Integration specs | 441 | 360 | 0 | 8 | 0 | 43 |
| Lib specs | 5997 | 4961 | 1 | 26 | 26 | 188 |
| Mailer specs | 685 | 621 | 0 | 0 | 0 | 0 |
| Model specs | 45021 | 37825 | 3 | 181 | 60 | 206 |
| Presenter specs | 290 | 240 | 0 | 0 | 0 | 0 |
| Request specs | 20972 | 18067 | 0 | 105 | 0 | 170 |
| Routing specs | 23 | 19 | 0 | 0 | 0 | 0 |
| Service specs | 4590 | 3812 | 20 | 82 | 4 | 44 |
| Task specs | 109 | 88 | 0 | 0 | 0 | 0 |
| Util specs | 42 | 36 | 0 | 2 | 0 | 16 |
| Worker specs | 321 | 284 | 0 | 0 | 0 | 0 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total | 142020 | 117869 | 722 | 5076 | 7 | 21 |
+----------------------+-------+-------+---------+---------+-----+-------+
Code LOC: 40443 Test LOC: 77426 Code to Test Ratio: 1:1.9
@quakewang 冒昧的问您一下,您用的什么电脑装的 linux。我最近想从 mac 转成 linux。
如果有兴趣,可以看看 ruby 的源码,不是很难理解。
学习了,不过现在应该有更好的解决方案了,我想。https://github.com/rails/rails/pull/20884/files
@a0nqm 是一个有好奇心的人,可能很多五年的 ruby 程序员,也不知道 ruby 的类型在内存中的体现,ruby 的 gc 等等。楼主现阶段确实也不可能理解这些的,可能楼主多年的积累后可以理解一些编程的“内涵”。
b 站吧
谢谢分享,膜拜
哈哈,刚刚没有算 rspec 的代码
+----------------------+-------+-------+---------+---------+-----+-------+
| Name | Lines | LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Controllers | 8871 | 7469 | 102 | 823 | 8 | 7 |
| Helpers | 2309 | 1960 | 2 | 227 | 113 | 6 |
| Models | 29324 | 23043 | 415 | 2629 | 6 | 6 |
| Libraries | 10119 | 7971 | 175 | 928 | 5 | 6 |
| Functional tests | 326 | 274 | 4 | 24 | 6 | 9 |
| Unit tests | 0 | 0 | 0 | 0 | 0 | 0 |
| Controller specs | 12005 | 10352 | 0 | 37 | 0 | 277 |
| Helper specs | 575 | 487 | 0 | 4 | 0 | 119 |
| Integration specs | 441 | 360 | 0 | 8 | 0 | 43 |
| Lib specs | 5997 | 4961 | 1 | 26 | 26 | 188 |
| Mailer specs | 685 | 621 | 0 | 0 | 0 | 0 |
| Model specs | 45021 | 37825 | 3 | 181 | 60 | 206 |
| Presenter specs | 290 | 240 | 0 | 0 | 0 | 0 |
| Request specs | 20972 | 18067 | 0 | 105 | 0 | 170 |
| Routing specs | 23 | 19 | 0 | 0 | 0 | 0 |
| Service specs | 4590 | 3812 | 20 | 82 | 4 | 44 |
| Task specs | 109 | 88 | 0 | 0 | 0 | 0 |
| Util specs | 42 | 36 | 0 | 2 | 0 | 16 |
| Worker specs | 321 | 284 | 0 | 0 | 0 | 0 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total | 142020 | 117869 | 722 | 5076 | 7 | 21 |
+----------------------+-------+-------+---------+---------+-----+-------+
Code LOC: 40443 Test LOC: 77426 Code to Test Ratio: 1:1.9
不一定的,真的也许他们需要 senior 一些的。调整心态,加油
Cherry 红
so cool
要求写反了 哈哈
@lithium4010 Ok 我理解你的意思了,确实和队列有关,往一个队列里放就保证前者执行后者后执行?这都是没有任何错误的情况吧,如果发生错误,需要重试呢?怎么布代码?hard code 1.minute ?那就更不靠谱了
也许你的是 ok 的。我想,就上传图片吧,你可以很好的预测出时间来?((算上网络情况,服务器的情况),我没太明白“q << n”什么意思?1w 张图片,你就能保证一分钟后执行 B? sidekiq 并行执行任务和执行一个单个任务时间差不多?MRI ruby 是 green thread 吧,而且“队列先进先出”有啥关系?
感觉估算不靠谱
+1
牛逼的团队。。。。
crontab 只是一个触发器而已,还要求什么呢,schedule,retry 等都自己实现好,“每一条任务都是独立的,都需要完整加载整个 Rails 运行环境” ,写到一个调度器里面,也就多个独立的变成了一个,然后调度器再往 delayed job 或着 sidekiq resque 等中 push 任务好了。我感觉需要精确到秒级别的东西本身就很少了。
#7 楼 @small_fish__ 谢谢支持
#6 楼 @themadeknight 恩,会做的。windows 版应该十月一后会出来