php怎样进行异步处理,【12-09】PHP中如何做异步处理,有啥好用的工具推荐吗?...

【今日话题】

PHP中如何做异步处理,有啥好用的工具推荐吗? - eric huang

1. laravel的异步队列感觉就做的非常优雅! - 马

2. swoole - viktor

3. 队列服务 Rabit Beanstalk Redis - 安正超

4. Laravel的队列有三种, 一种是直接运行,用于开发环境, 一种是用redis, 一种是用beantalk

应该是首推beanstalk,毕竟是专门做队列,其次是redis

上次要写个队列,就拿laravel去参考了,功能实现确实很赞

有两种运行模式, 一种是常驻内存, 直到内存超出指定配置, 自动退出

一种是每次来一个任务,开一个新的php进程处理, 处理完退出

要实现常驻,要靠外部来监控了, 用supervisor, 退出时自动重启, 或者简单点写个crontab去判断也行

比较大的缺点是, 模块设计比较重, 队列功能依赖很多, 不能单独安装, 要装整个laravel全家桶才行跑起来, 不是用laravel的application的, 要折腾了

其他特色功能**错误任务最大次数, 超出次数记录到数据库, 延迟运行, 防止任务丢失等

我自己再加上最大运行时间功能, 就可以避免mysql,redis连接超时了, 不用处理重连问题

其他的异步方法有 通过exec执行curl, 通过fsockopen打开网页等

有一个我比较想尝试的, 是先写入到文件, 每个任务一行, 外部跑crontab或tail之类的命令, 读取文件内容, 再解析了执行, 性能应该很好, 依赖又非常少 - twin

5. 发信息给py

py通过gevent处理

gevent很简洁 - 种树人

6. 用upstart或者systemd做自动重启 - 刘科彬

7. https://github.com/coooold/swPromise 基于swoole,php的promise框架 - Jason Bourne

8. 问: Php实现异步为了干什么用呢,根部不适合做异步吧 - 这个人很开心

回: 不是适合不适合做异步,而是Web服务有时需要异步处理来提升用户体验。 - 李三

9. 要异步,web 命令行就可以吧 进度依赖数据库或文件

web产生任务,命令行扫描任务队列,web查询状态和结果 - 张金帅

10. 利用gearman做PHP异步 - 杨毓丞

11. 最近刚做,php写任务队列,python处理队列任务

Swoole也考虑过,但是放弃了 - tiyee

12. 通过exec调用系统的screen,创建一个自动退出的“terminal”,其中执行curl命令,被调用的方法忽略超时

Tag标签:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值