上一篇跟上上一篇我们终於分别把两个环境架设好了
这篇我们就要来介绍如何在背景执行runserver
以及如何使用crontab啦
废话不多说,咱们累狗~
首先我们一样先来看我们的aws位址
可以看到现在django是处於关闭状态
接着我们进入aws的console
然後进入django资料夹,输入以下指令:
screen -d -m python3 manage.py runserver 0.0.0.0:8000
从十几天前就跟你讲过了,Python很内向的,成功了也不会跟你说的
不过成不成功再输入一次url就知道了
这次就成功连上线啦
那如果要把这个django杀掉也很简单
我们先找出执行刚刚command的process
输入以下指令
ps aux | grep -i manage
就可以看到我们刚刚执行的process id叫51736
所以我们只要砍掉这个process就好了
输入以下指令
kill -9 51736
指令就成功删除啦
接下来我们就要来讲一下如何让你的django自动执行function啦
其中django有一个非常好用的套件叫做django-crontab
这个东西下载下来,设定好格式,就会帮你自动执行function了
首先我们先在aws下载django-crontab
pip3 install django-crontab
毫无问题
接下来我们要来修改setting.py内的东西啦
首先先将INSTALLED_APPS的东东加上'django_crontab'
这个套件加上去时,执行manage.py就会自动帮你加上去了
此时你的INSTALLED_APPS应该会像这样
INSTALLED_APPS = [
'django_crontab',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'stonks_index'
]
接下来是设定CRONJOBS啦
我们先在stonks_index/views.py加上以下程序码
#测试crontab用
def corn_job():
print("This is cronjob test")
毕竟是测试用的就不要加太多东西啦
然後我们回到settings.py,把这个function加上我们的CRONJOBS排程
由於预设是没有这个栏位的,所以我们要额外自己加上去
CRONJOBS = [
('45 * * * *', 'stonks_index.views.corn_job'),
]
先来讲讲第一栏的东东是啥意思
crontab会分成五个部分,分别是分 时 日 月 周
每格可以设定的参数有:
*
: 每个段落都会执行
a-b
: 每个段落的a时间点开始到b时间点结束的每个单位都会执行
a
: 在每个段落的a时间点执行
*/n
: 每段落每隔n单位执行
a-b/n
: 每个段落的a时间点开始到b时间点结束每格n单位执行
这样讲有点笼统,来几个实际的范例好了
*/30 * * * *
:每个月每天每30分钟执行
30 12 1 */3 *
:每三个月1号的12:30执行
0 0 * * 1-5
:每个月每周一到周五的0点0分执行
当然还有一些比较复杂的情况
可以用下面的网址来看一下每个设定的结果如何
https://crontab.guru/
那麽根据这个规则
上面的45 * * * *
就代表着每天每小时在45分时执行
执行的东西就是後面的stonks_index资料夹内views档案中的corn_job function
以上全部设定完之後,就可以commit上去啦
接着进到aws,把刚刚的code pull下来
然後执行python3 manage.py crontab add
可以看到我们刚刚设定的cronjob就加入到crontab内啦
然後我们可以输入python3 manage.py crontab show
可以看到有job在crontab内就是成功啦
那要如何确定有cronjob到底有没有执行成功呢
我们可以去我们的log看
log的位置在 /var/log/syslog这边
所以我们就打开看看吧
vi /var/log/syslog
(这里为了截图方便,所以我把设定改成12分发送)
那如何删除cronjob呢,也很简单
输入指令
python manage.py crontab remove
这样就把cronjob清空啦
以上就是背景执行跟自动执行cronjob的部分
下一篇我们会进入最後的一篇主菜
我们要来补上我们的index页面,让我们进入时不要每次都显示找不到页面
想知道django的前端如何制作
且听下回分解~
<<: Day27 - 动态模型 part2 (LSTM with attention)
>>: Day24 - 在 XState 中的阶层式状态 Hierarchical States
延续昨天要讲的 DS.php https://ithelp.ithome.com.tw/articl...
[ 30 Days of ML Challenge | D03] 今天提供一个文件以及一个练习教材,...
人的科技文明发展始终来自於人性 现今的科技水平已经和以往不同了,以目前的科技水准来说大家都可以有好的...
昨天没有写完的 Array & Slice(上) ,今天要来把补完进度。 那我们就开始吧 ─...
分散式运算架构 MapReduce 利用函式语言程序设计的概念,将分散运算分为映射(Map)和归纳...