首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

php docker web终端的折腾 原

#php是天下最好的语言,没有之一。 我非常喜欢php,我听过一个高手的讲座,讲php的编译原理,发现如果就php语言开发而言的确技术上有高低之分。一比较才发现自己差了十万八千里,自己不努力是不行的。好了不多说了,我来说说今天我分享的话题。 ##背景 2015年,我开始接触docker,那个时候发现一个管理平台shipyard,shipyard中有一个可以直接在浏览器上操作的web终端很吸引我,我想自己实现这样的一个服务,我翻看了其中的技术细节,发现有一个shipyard/controller/api/hijack.go中一堆的操作,当我开始用php模拟来写的时候,我发现我对php的认识还处于低级阶段,看起来很一个很艰难的工作。

01

php与swoole实现异步任务队列

假如要发100封邮件,for循环100遍,用户直接揭竿而起,什么破网站! 但实际上,我们很可能有超过1万的邮件。怎么处理这个延迟的问题? 答案就是用异步。把“发邮件”这个操作封装,然后后台异步地执行1万遍。这样的话,用户提交网页后,他所等待的时间只是“把发邮件任务请求推送进队列里”的时间。而我们的后台服务将在用户看不见的地方跑。 在实现“异步队列”这点上,有人采用MySQL表或者redis来存放待发送的邮件,然后,每分钟定时读取待发送列表,然后处理。这便是定时异步任务队列。但当前提交的任务要一分钟后才能执行,在某些实时性要求高的应用场景里还是不快,比如发送短信的场景,只要一提交任务,便要马上执行,用户不需要等待返回结果。 以下将探讨用php扩展swoole实现实时异步任务队列发送短信的方案。

01
领券