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

2017 年 6 月 23 日
 tianxiacangshen
思来想去想用这么一种办法:

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

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

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

OnBootSec=1minute
OnUnitActiveSec=1month
Event
2017 年 6 月 23 日
监控宝 定时访问一个 URL 然后搭建网站写个 PHP 然后跑命令行
whileFalse
2017 年 6 月 23 日
win 上有计划任务……
tinyproxy
2017 年 6 月 24 日
有 CI 的话,新建一个定时构建的任务。
herbertzz
2017 年 6 月 24 日
看你服务器的环境咯,方法太多了
gongzili456
2017 年 6 月 24 日
To be simple; use crontab.
wyntergreg
2017 年 6 月 24 日
@xcatliu 一看就没有女朋友,女朋友来大姨妈是最忙的时候,应该是大姨妈走的第一天闲来无事

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/370658

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX