PHP在CGI模式下有什么可以执行异步任务(除队列模式)的解决方案
如题
在用户请求进程中,开启一个异步任务执行一些代码
类似于下面的写法
go func(){
sleep(2)
do someting task。。。。
}()
- pnctl CGI模式下开不了进程
- yield 好像也不好搞
原生的的php应该是没有的,就算是php8.1最新引入的fiber都不是真的异步,只能用一些其他方法。
popen
框架中一般有个一个
terminate
事件是在返回响应后触发。一些比较耗时的任务可以放在这个事件中处理,不影响响应时间,不知道能否满足你的要求。https://wiki.swoole.com/#/start/coroutine?id=%e4%bd%bf%e7%94%a8%e5%8d%8f%e7%a8%8b%e4%bd%a0%e5%8f%af%e4%bb%a5%e5%9c%a8%e4%b8%80%e7%a7%92%e9%92%9f%e9%87%8c%e5%81%9a%e5%a4%9a%e5%b0%91%e4%ba%8b swoole 协程试下
使用 swoole 封装好的协程,或者使用 Promise 这种委婉的解决方式
我也想问一样的问题 哈哈哈 发现好像没有 需要在cli下执行
用队列吧
使用 spatie/async 库来写异步的 PHP 代码
以前看了鸟哥的博客上的,popen curl fsockopen。 异步还是用cli模式吧,swoole等。
谢谢各位大佬们的支持, 涨姿势了。web下的异步还是挺麻烦的,原生的直接几行代码看来是不好实现了
exec/system/proc_open (“/path/process.php action param1 param2 > /dev/null 2>&1 &”)
异步是吧?不需要实时反馈结果是吧?
打完收工。