关于laravel的数据库操作的一些想法

想法的产生是因为确实有这样的需求,而且还不少,需求就是接口不能同步更新DB,要异步,所以能不能让官方实现支持ORM相关更新方法的异步支持,或者有没有类似的包?比如:

//异步
        User::query()->create()->async();
        User::query()->insert()->async();
        User::query()->insertGetId()->async();
        User::query()->updateOrCreate()->async();
        User::query()->upsert()->async();
        ...

我们以前的做法就是生成sql,直接丢到队列里跑!所以按理这个应该很好实现,奈何看不懂源码,写不出这样的一个包!

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 13

要不就用swoole 要不就丢队列吧

10个月前 评论
提桶跑路了 (楼主) 10个月前

file Octane(加速引擎) 常驻内存看这个, php-fpm 没办法

10个月前 评论
提桶跑路了 (楼主) 10个月前

swoole(laravel-s/ Octane) 或队列

感觉这样会方便些

10个月前 评论

你可以去用国产高性能框架,号称大道至简、十年磨一剑、专为 API 开发而发布的框架 ThinkPHP

file

PS

只负责推荐,如果你用了什么问题别跟别人说是我推荐的。

根据你目前的问题,最优解是 事件(OR || &&) queue,可以用事件触发 queue,也可以直接推进 queue 处理。 如果真的有这个需求,建议做客制化开发或者提交 PR。 温馨建议: 建议把 async() 调用放在 create update ... 等函数的前面

10个月前 评论
提桶跑路了 (楼主) 10个月前
slowlyo

用这玩意包一下:

file

10个月前 评论

我记得应该可以写个command 然后exec在后台执行吧,你这个不能同步的原因是什么,是更新慢,不想让用户等待么?

10个月前 评论

异步设计有很多种工具实现, 但是数据库ORM设计跟它是两个东西,为什么要耦合在一起呢?

10个月前 评论
提桶跑路了 (楼主) 10个月前
sanders

我觉得对数据的异步操作可能没有这么简单,比如需要考虑到数据一致性和事务操作。常见的做法还是写个 Job 推到队列里去消费。

10个月前 评论
cccdz 10个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!