自动订餐系统


一、原因

换了新公司,新公司有个订餐系统,但是需要在下午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.plist
launchctl unload com.wade.food.plist
launchctl start  com.wade.food.plist
launchctl stop   com.wade.food.plist
launchctl list

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

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

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

stop可以停止任务

3.自动安装install.sh

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

三、扩展

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值