tianxiacangshen
V2EX  ›  PHP

每个月自动执行一次某程序,什么样的方法最简单?

  •  
  •   tianxiacangshen · Jun 23, 2017 · 5740 views
    This topic created in 3428 days ago, the information mentioned may be changed or developed.
    思来想去想用这么一种办法:

    给这个操作设置一个 30 天的缓存,然后在经常访问的 public function 里(比如 index ),每次访问都检测这个缓存是否存在,如果存在跳过,不存在则 ignore_user_abort 后台执行,弊端是 30 天才运行一次的方法却要无时无刻都检测,性能低下,有更好的办法吗?
    29 replies  •  2017-07-06 21:05:29 +08:00
    zea
    zea
    Jun 23, 2017 via Android
    1
    写个接口用 cron 调用?
    billion
    billion
    Jun 23, 2017
    2
    crontab
    0 8 1 * * xxx
    每个月 1 号早上 8 点执行 xxx 命令。
    xcatliu
    xcatliu
    Jun 23, 2017 via iPhone❤️6
    3
    女朋友每次来大姨妈的时候,你就正好闲下来去手动运行一次
    geelaw
    geelaw
    Jun 23, 2017❤️1
    4
    @xcatliu 弊端是怀孕、更年期或月经不调的时候就会忘记这事
    Lax
    Lax
    Jun 23, 2017
    5
    万一缓存挂了呢?

    用 cron 吧,记得记录一下上次完成时间。
    mooncakejs
    mooncakejs
    Jun 23, 2017
    6
    cron 依赖缓存,,也许哪天心情好就点下清理缓存了。
    如果是虚拟主机没有 cron 可以用云触发 一个 url
    ech0x
    ech0x
    Jun 23, 2017 via iPad
    7
    @geelaw
    @xcatliu 前提是要有女朋友
    nutting
    nutting
    Jun 23, 2017 via Android
    8
    linux 的 crontab
    liuxu
    liuxu
    Jun 23, 2017
    9
    一般都是写 crontab。。
    tianxiacangshen
    tianxiacangshen
    OP
    Jun 23, 2017
    10
    @xcatliu
    @geelaw
    @Lax
    @mooncakejs

    是啊,都是问题,一是忘记女朋友大姨妈了怎么办,二是怀孕更年期大姨妈没来怎么办,三是不小心平常清理了怎么办,都是弊端
    580a388da131
    580a388da131
    Jun 23, 2017
    11
    利用各种免费的云监控工具,写好判断,既能监测服务器状态,又能执行定时计划。
    sneezry
    sneezry
    Jun 23, 2017 via iPhone
    12
    试试 Azure Function App 吧😃
    ipeony
    ipeony
    Jun 23, 2017 via Android
    13
    上次看 v 友介绍的 jobber 可以看下
    expy
    expy
    Jun 23, 2017
    14
    systemd/Timers 也行。。。

    OnBootSec=1minute
    OnUnitActiveSec=1month
    Event
    Event
    Jun 23, 2017
    15
    监控宝 定时访问一个 URL 然后搭建网站写个 PHP 然后跑命令行
    whileFalse
    whileFalse
    Jun 23, 2017
    16
    win 上有计划任务……
    tinyproxy
    tinyproxy
    Jun 24, 2017 via iPhone
    17
    有 CI 的话,新建一个定时构建的任务。
    herbertzz
    herbertzz
    Jun 24, 2017
    18
    看你服务器的环境咯,方法太多了
    gongzili456
    gongzili456
    Jun 24, 2017
    19
    To be simple; use crontab.
    wyntergreg
    wyntergreg
    Jun 24, 2017
    20
    @xcatliu 一看就没有女朋友,女朋友来大姨妈是最忙的时候,应该是大姨妈走的第一天闲来无事
    moult
    moult
    Jun 24, 2017
    21
    当你收到工资卡的余额提醒的时候,就去手动执行一下。
    当然,如果这个月没有发工资,你也就不需要执行了。
    Arnie97
    Arnie97
    Jun 24, 2017
    22
    /etc/cron.monthly/*
    halfcoder
    halfcoder
    Jun 24, 2017
    23
    MrYELiex
    MrYELiex
    Jun 24, 2017
    24
    也就 30 天一次 干嘛不手动
    carlonelong
    carlonelong
    Jun 25, 2017
    25
    定个闹钟
    gouchaoer
    gouchaoer
    Jun 25, 2017 via Android
    26
    用 cron 系统部署不好搞,就缓存来搞,反正流量不大
    simbest
    simbest
    Jun 25, 2017
    27
    crontab
    wizardoz
    wizardoz
    Jun 25, 2017
    28
    信用卡账单
    gidot
    gidot
    Jul 6, 2017
    29
    linux 就 crontab
    windows 当然用系统自带的“计划任务程序”
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1032 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 124ms · UTC 22:59 · PVG 06:59 · LAX 14:59 · JFK 17:59
    ♥ Do have faith in what you're doing.