V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
s609926202
V2EX  ›  Linux

如果实现每隔 5 分钟,且仅在白天运行的定时器?

  •  
  •   s609926202 ·
    shangdev · 2020-08-05 20:37:16 +08:00 via iPhone · 4876 次点击
    这是一个创建于 1604 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用 linux 的 crontab,每隔 5 分钟运行一次实现容易,再加个限定时段就该如何实现?

    第 1 条附言  ·  2020-08-06 10:49:24 +08:00
    怎么会有这么多人计较“白天”概念不清,,,送上百科词条: https://baike.baidu.com/item/%E7%99%BD%E5%A4%A9/65657?fr=aladdin

    感想楼 2 和楼 7:*/5 9-21 * * * command
    24 条回复    2020-09-10 00:05:35 +08:00
    arischow
        1
    arischow  
       2020-08-05 20:38:11 +08:00 via iPhone
    https://crontab.guru/
    EricXuu
        2
    EricXuu  
       2020-08-05 20:46:41 +08:00   ❤️ 1
    */5 6-18 * * *
    Cookieeeeee
        3
    Cookieeeeee  
       2020-08-05 20:49:38 +08:00
    搞个 shell 脚本定时杀掉然后再启动再结合 crontab 用~
    huntcool001
        4
    huntcool001  
       2020-08-05 21:33:51 +08:00
    白天一年四季在变的吧. 还得联网查询?
    win7pro
        5
    win7pro  
       2020-08-05 22:00:33 +08:00
    顶 2 楼,或者在每 5 分钟执行一次,然后在执行脚本内判断是不是白天
    singerll
        6
    singerll  
       2020-08-05 22:10:15 +08:00 via Android
    啥是白天,具体讲讲
    bin20060407
        7
    bin20060407  
       2020-08-05 22:35:21 +08:00   ❤️ 1
    */5 9-21 * * * command
    这种?
    ClericPy
        8
    ClericPy  
       2020-08-05 22:38:52 +08:00
    crontab 支持时间段的, 以前用 python 库 plan 处理过批量调度的事情. 虽然现在已经是 systemd 的时代了

    问个题外话: 现在是不是特别流行用"如果"代替"如何"
    shantongxu
        9
    shantongxu  
       2020-08-05 22:46:16 +08:00   ❤️ 1
    如果实现了, 就能怎么样呢?
    s609926202
        10
    s609926202  
    OP
       2020-08-05 23:27:24 +08:00
    @ClericPy 打错字了。。
    s609926202
        11
    s609926202  
    OP
       2020-08-05 23:28:01 +08:00
    @shantongxu 起飞。。减少目标网站负载
    s609926202
        12
    s609926202  
    OP
       2020-08-05 23:34:19 +08:00
    ClericPy
        13
    ClericPy  
       2020-08-05 23:35:12 +08:00
    @s609926202 我就随口一问, 因为见过超过十次了... 在想是不是新的流行说法

    反正定时任务尽量还是别用原生 crontab 了, 找个靠谱点的调度后台算了, 最近也在调研处理定时任务流的, 在 azkaban 和 airflow 里面转悠
    explore365
        14
    explore365  
       2020-08-05 23:35:16 +08:00
    回复白天时间不一样的那些人,咋不回复极昼极夜啊???
    Archeb
        15
    Archeb  
       2020-08-05 23:39:04 +08:00
    应该加入 geoip 库,根据 IP 判断服务器所在城市和经纬度,再通过日期和经纬度计算出日出日落时间,以此判断是不是在白天(手动狗头
    ochatokori
        16
    ochatokori  
       2020-08-06 05:42:57 +08:00 via Android
    @ClericPy #13 为什么尽量不用原生
    pixiaotiao
        17
    pixiaotiao  
       2020-08-06 08:14:22 +08:00 via Android
    分 时 日 月 周
    meiyoumingzi6
        18
    meiyoumingzi6  
       2020-08-06 09:17:08 +08:00 via Android
    话说你对白天的时间定义是什么样子的,


    这个需求不明确呀
    huayumo
        19
    huayumo  
       2020-08-06 09:25:52 +08:00
    最好写程序里吧,程序里定时跑,我的程序是半小时,定义范围也是很容易的
    zsdroid
        20
    zsdroid  
       2020-08-06 13:22:08 +08:00
    所以 9 点-21 点是白天?
    ClericPy
        21
    ClericPy  
       2020-08-06 21:31:35 +08:00
    @ochatokori 原生用 systemd 还好, cron 一开始用的舒服, 后来被同事东一块西一块还没注释的 cron 给玩死了... 虽然我上份工作用 supervisord + plan(Python 库, 定制 crontab 任务的) 做的通用脚本调度也能玩死不少交接的...

    一两个任务, 服务器少的时候, crontab 用着还好, 但是考虑极限情况: 多账户, 多机器, 几百个任务... 这不叫运维了, 这叫防离职黑魔法
    Yut
        22
    Yut  
       2020-08-07 17:45:21 +08:00 via Android
    Linux 有原生 API 来看日夜的吧。。。9-21 也太怪了
    ZoeYn
        23
    ZoeYn  
       2020-08-12 13:19:49 +08:00
    @ClericPy 为啥尽量不用 crontab 啊
    shequ2046
        24
    shequ2046  
       2020-09-10 00:05:35 +08:00
    @ClericPy 哈哈,会允许你随便乱跑 crontab 的公司。。。真的是有无数合法的保障自己被裁后,让接手的人从零开始重新构架整个服务器的方法。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5033 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 05:42 · PVG 13:42 · LAX 21:42 · JFK 00:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.