PHP在CGI模式下有什么可以执行异步任务(除队列模式)的解决方案

如题
在用户请求进程中,开启一个异步任务执行一些代码
类似于下面的写法

    go func(){
        sleep(2)
        do someting task。。。。
    }()
  • pnctl CGI模式下开不了进程
  • yield 好像也不好搞
PHP是世界上最好的编程语言,它能快速的进行技术变现,让代码多一份价值。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 15
fatrbaby

原生的的php应该是没有的,就算是php8.1最新引入的fiber都不是真的异步,只能用一些其他方法。

3年前 评论

框架中一般有个一个 terminate 事件是在返回响应后触发。一些比较耗时的任务可以放在这个事件中处理,不影响响应时间,不知道能否满足你的要求。

3年前 评论

使用 swoole 封装好的协程,或者使用 Promise 这种委婉的解决方式

3年前 评论

我也想问一样的问题 哈哈哈 发现好像没有 需要在cli下执行

3年前 评论
sanders

用队列吧

3年前 评论

以前看了鸟哥的博客上的,popen curl fsockopen。 异步还是用cli模式吧,swoole等。

3年前 评论
supperdiyer 2年前

谢谢各位大佬们的支持, 涨姿势了。web下的异步还是挺麻烦的,原生的直接几行代码看来是不好实现了

3年前 评论

exec/system/proc_open (“/path/process.php action param1 param2 > /dev/null 2>&1 &”)

异步是吧?不需要实时反馈结果是吧?

打完收工。

2年前 评论
mowangjuanzi 2年前
cevin (作者) 2年前

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