0
点赞
收藏
分享

微信扫一扫

【开发工具】如何自动更新本地仓库代码(一)

缘起

Windows下的定时问题

利用windows自带“任务计划程序”

  • windows管理工具——>任务计划程序——>创建任务进入定时任务在这里插入图片描述- 创建任务中,常规选项卡中,建议勾选不管用户登陆和不存储密码选项:在这里插入图片描述
  • 建立触发器,对应触发方式,可一次,也可每天每周这种:
    在这里插入图片描述
  • 指定具体的操作,如执行某个bat文件:
    在这里插入图片描述

schtasks

  • 计划命令和程序以定期或在特定时间运行,在计划中添加和删除任务,启动和停止按需任务,以及显示和更改计划任务。
  • schtasks.exe工具与控制面板中的 “计划任务” 执行相同的操作。 可以将这些工具一起使用,并且可以互换使用。
schtasks /create /tn "test" /tr "\"C:\svn update\code-update.bat"" /sc HOURLY /mo 1 

at命令

  • 从Win8开始不再支持at命令;
  • at仅能执行一次,无法周期执行;

vbs脚本

  • 下面是一个简单的例子,每小时执行一次code-update.bat脚本,其他定时情况可参考:
Set ws=wscript.createobject("wscript.shell")
dim bat
'svn-update.bat即为更新本地代码的bat脚本,默认与当前脚本存储在同一目录下
bat="cmd.exe /c code-update.bat"
do
'0表示不显示窗口,1显示,调试用
ws.run bat,0
'每小时执行一次
wscript.sleep 3600000
echo begin next execute
loop

python语言

  • 可使用Python 实现定时任务,实际有很多种,常见下面几种:
  • 这里仅提供一个使用schedule的例子:
import datetime
import schedule
import time
def code-update():
    #仅举例做定时任务,不做实际的更新动作
    print('Begin to update local code')
def tasklist():
    #创建一个按1小时的间隔执行任务
    schedule.every(3600).seconds.do(code-update)
    #每1分钟检查一次
    while True:
        schedule.run_pending()
        time.sleep(60)
#清空任务
schedule.clear()
#开始执行
tasklist()

Linux下的定时问题

  • 可参考拙作:【Linux】【操作】Linux操作集锦系列之一——定时任务
  • 以crontab为例来说明,每小时执行一次代码更新动作:
*/60  * * * * code-update.sh #每60分钟即每小时执行一次

如本文对你有些许帮助,欢迎大佬加关注、评论、点赞,收藏;
有关必回关,绝对诚信

举报

相关推荐

0 条评论