xiaoyanbot
V2EX  ›  PHP

既然 PHP -FPM 是常驻内存的,为什么不原生实现 corn 定时器

  •  
  •   xiaoyanbot · Apr 15, 2019 · 6651 views
    This topic created in 2759 days ago, the information mentioned may be changed or developed.

    PHP 话题

    13 replies  •  2019-04-19 23:12:45 +08:00
    ysc3839
    ysc3839
    Apr 15, 2019
    1
    这个问题要问 PHP 的开发组才知道。
    不过一种可能的原因是已经有现成的工具了,重复造轮子费时费力。
    ericls
    ericls
    Apr 15, 2019 via iPhone
    2
    为什么不原生实现 redis?
    为什么不原生实现个操作系统
    rming
    rming
    Apr 15, 2019 via iPhone
    3
    内存泄露有风险,信号处理不完善,进城管理不完善,运行环境没有系统预装,就算要实现秒级的 cron,用 shell 或者 python 比 php 都方便,嗯,大概这样
    DonaidTrump
    DonaidTrump
    Apr 15, 2019
    4
    为什么不原生实现 Mysql
    lshero
    lshero
    Apr 15, 2019 via Android
    5
    感觉实现连接池更有意义吧
    gamexg
    gamexg
    Apr 16, 2019 via Android
    6
    非 php,
    影响这个是可能部署多个,
    之间会出现同步、重复执行的问题吧。
    yuikns
    yuikns
    Apr 16, 2019 via iPhone
    7
    fpm 貌似是多进程加个简单进程管理。自己实现 cron 不仅是冗余代码,而且自己去搞在一致性上面也没啥优势
    R18
    R18
    Apr 16, 2019 via Android
    8
    可以搞,但没必要
    banditv2ex
    banditv2ex
    Apr 16, 2019
    9
    上面说可以搞的大概是不了解 php-fpm。
    php-fpm 跟 nginx 比较类似,由 master 进程是常住内存的。
    master 进程 fork 很多子进程,处理 php 请求的是子进程,子进程在处理一定数量的请求之后就会退出(对,就是前面的同学说的避免内存泄漏)。
    虽然 master 常住进程 ,但是如果 master 挂了整个服务都挂了,不能用来处理其他任务。
    julyclyde
    julyclyde
    Apr 16, 2019
    10
    fpm 虽然是常驻内存,但是其运行过程是基于请求的
    你需要的是 php-cli
    laozhoubuluo
    laozhoubuluo
    Apr 16, 2019
    11
    1. php 命令行了解一下。
    2. php-fpm 可以启动多个,如果要做 cron 还得设计一个锁机制,费时费力还不如 crontab 好用。
    AbrahamGreyson
    AbrahamGreyson
    Apr 18, 2019 via iPhone
    12
    主进程只负责守护子进程,只有主进程一直运行
    yuekcc
    yuekcc
    Apr 19, 2019
    13
    roadrunner 欢迎你实现一个 corn 拓展
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5314 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 03:00 · PVG 11:00 · LAX 19:00 · JFK 22:00
    ♥ Do have faith in what you're doing.