django-cromtab實現定時任務
參考:https://www.jianshu.com/p/1def9226158d
'''
首先安裝插件:pip install django-crontab
而後在setting的installed app下
INSTALLED_APPS = (
...
'django_crontab', #注意是_不是-
)
'''
3、而後在在test APP下新建cron.py:
#
def test_job():
# cursor = connection(db='default')
# sql = """"""
# test = Test('哈哈')
with open('a.txt', 'w') as f:
f.write('Hello, world!')
print(6666)
return 1
4、同時在 settings.py 文件中添加 CRONJOBS 配置,內容以下:
CRONJOBS = [
('*/1 * * * *', 'cele.cron.test_job', '>>/tmp/test.log')
]
其中:
第一個參數是 cron 表達式,定義定時任務的執行時間。
第二個參數是要執行的模塊和函數。
第三個參數是執行定時腳本時日誌文件的路徑。
5、執行:python manage.py crontab add
而後每隔1分鐘就能在/tmp/test.log中看到一行666的記錄,生成的a.txt文件在~下
django-crontab結合django:
#!/usr/bin/env python
# encoding: utf-8
"""
@version: ??
@author:
@software: PyCharm
@file: cron.py
@time: 2018/6/14 10:06
"""
# from django.db import connection
# from cele.models import Test
import os
import django
from django.conf import settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'test_django.settings')
django.setup()
from cele.models import Test
def test_job():
# cursor = connection(db='default')
# sql = """"""
test = Test(name='哈哈')
test.save()
with open('a.txt', 'w') as f:
f.write('Hello, world!')
print(6666)
return 1
test_job()
CRONJOBS = [
# ('48 10 * * *', 'cele.cron.py.test_job'),
# ('*/1 * * * *', 'cele.cron.test_job', '>>/tmp/test.log')
]
每隔1分鐘再數據庫中插入一條數據