1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        只在工作日?qǐng)?zhí)行的腳本

        共 2532字,需瀏覽 6分鐘

         ·

        2022-06-28 23:18

        作者:張京

        來(lái)源:SegmentFault  思否社區(qū) 


        有時(shí)候我們會(huì)需要定時(shí)執(zhí)行一個(gè)腳本,那么可以用cronjob來(lái)完成,比如這樣:


        10 04 * * * /usr/local/bin/somework.sh


        有時(shí)候,只希望這個(gè)腳本在工作日?qǐng)?zhí)行,比如這樣:


        10 04 * * 1-5 /usr/local/bin/somework.sh

        但是工作日有時(shí)候又不是簡(jiǎn)單的周一到周五,比如趕上個(gè)小長(zhǎng)假什么的,有時(shí)候周六要上班,有時(shí)候周一又不上班,這時(shí)候這樣的設(shè)置就容易亂,那我們?cè)趺丛O(shè)置這個(gè)cronjob才能讓他預(yù)知我們的放假排班計(jì)劃,并做到絲毫不亂呢?


        只用cron是不行的,我們需要在腳本里調(diào)取一個(gè)開(kāi)放接口獲知放假安排,然后就可以按計(jì)劃執(zhí)行了。


        這個(gè)開(kāi)放接口在這里:

        https://github.com/NateScarlet/holiday-cn


        我們簡(jiǎn)單寫(xiě)一個(gè)腳本:


        #!/usr/local/bin/python
        """每天定時(shí)執(zhí)行腳本"""
        import datetime
        import requests


        def will_work(date):
            """檢查該天是否需要工作"""
            holiday_data = requests.get(
                url='https://natescarlet.coding.net/p/github/d/holiday-cn/git/raw/master/2022.json'
            ).json()
            # 放入公司規(guī)定的特殊考勤日
            holiday_data['days'].append({
                'date''2022-06-21',
                'isOffDay': False
            })
            # 檢查該日期是否在列表中
            days_in_list = [day for day in holiday_data['days'if day['date']
                            == datetime.datetime.strftime(date, '%Y-%m-%d')]
            if days_in_list:
                # 是否在節(jié)假日倒休表里,如果在倒休表里,按倒休表作息
                return not (days_in_list[0]["isOffDay"])
            else:
                # 按照周一至周五作息
                return True if date.weekday() < 5 else False


        def main():
            """主函數(shù)"""
            if will_work(datetime.datetime(2022, 6, 21, 0, 0, 0, 0)):
                print("今天要上班")
            else:
                print("今天不上班")


        if __name__ == '__main__':
            main()


        賦予它執(zhí)行權(quán)限:


        chmod +x somework.py


        然后定一下cronjob:


        10 04 * * * /usr/local/bin/somework.py


        就可以每個(gè)工作日?qǐng)?zhí)行了。




        點(diǎn)擊左下角閱讀原文,到 SegmentFault 思否社區(qū) 和文章作者展開(kāi)更多互動(dòng)和交流,掃描下方”二維碼“或在“公眾號(hào)后臺(tái)回復(fù)“ 入群 ”即可加入我們的技術(shù)交流群,收獲更多的技術(shù)文章~

        - END -


        瀏覽 16
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            娇妻荡女h刘真 | 91老熟女露脸大合集 | 日韩午夜视频在线 | 周秀娜无删减床戏视频 | 靠逼视频在线观看 | 日本无码破解 | 日韩中文字幕在线观看 | 最新每日AV资源更新网站 | 高清无码黄色电影 | 欧美激情在线第一页 |