自动订餐系统

来源:互联网 发布:淘宝企业店铺怎么注销 编辑:程序博客网 时间:2024/04/29 14:58

一、原因

换了新公司,新公司有个订餐系统,但是需要在下午5点之前订餐,于是想到能不能每天下午4点半自动订餐呢,然后就想到了自动定时功能。

在linux下可以用crontab来定时执行任务,在MAC下可以用launchctl来定时执行任务。


二、过程

1.创建一个food.sh文件,负责打开网页,并进行相关逻辑操作

open https://www.baidu.com

2.在/Library/LaunchAgents目录下创建一个plist文件,这个就是系统执行任务时要使用的文件,文件名叫com.wade.food.plist,文件内容如下:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict>  <key>Label</key>  <string>com.wade.food.plist</string>  <key>ProgramArguments</key>  <array>    <string>/food.sh</string>  </array>  <key>StartCalendarInterval</key>  <dict>        <key>Minute</key>        <integer>30</integer>        <key>Hour</key>        <integer>16</integer>  </dict>  <key>RunAtLoad</key>  <true/></dict></plist>

简单的对这里边的内容说明一下:
label这里就是给这个任务名个名字,这里一般取plist的文件名,这个名字不能和其它的plist重复。
/food.sh是我们要执行的脚本存放位置。
StartCalendarInterval里边的参数是说每一天16点30分的时候执行一下脚本。

然后就可以用下面的几个命令进行操作我们做好的任务了。

launchctl load   com.wade.food.plistlaunchctl unload com.wade.food.plistlaunchctl start  com.wade.food.plistlaunchctl stop   com.wade.food.plistlaunchctl list

要加载我们做好的plist文件,就是用上面的第一个命令load,这个时候糸统就会在每天的16点30分执行我们的脚本。如果想去掉我们的定时任务就可以用unload命令。

如果一个任务今天的16点30分执行过了,然后你改了,com.wade.food.plist里面的时间,比如说改到16点30分执行,必须unload之后再重新load一下,不然当天不会再执行这个命令。

start可以测试任务,这个是立即执行,不管时间到了没有

stop可以停止任务

3.自动安装install.sh

#!/bin/bashecho "安装ing..."#安装plistsudo cp ./com.wade.food.plist /Library/LaunchAgents/sudo chmod a+x /Library/LaunchAgents/com.wade.food.plistlaunchctl unload /Library/LaunchAgents/com.wade.food.plistlaunchctl load /Library/LaunchAgents/com.wade.food.plist#安装脚本sudo cp ./food.sh /sudo chmod a+x /food.shecho "安装完成!"

三、扩展

此功能只实现了每天下午4点半定时打开订餐网页,但是并没实现订餐的功能,这里暂时没有思路,因为对网页不熟悉,业余时间需要研究一下网站开发了。

0 0
原创粉丝点击