Django定时任务crontab静态化首页

Django定时任务crontab静态化首页,第1张

Django定时任务crontab静态首页 python编程快速上手(持续更新中…) python实战项目(Django技术点)

在Django执行定时任务,可以通过 django-crontab 扩展来实现

1.安装 django-crontab

pip install django-crontab

2.注册 django-crontab 应用

INSTALLED_APPS = [
‘django_crontab’, # 定时任务
]

3.设置定时任务
定时时间基本格式 :

*  *  *  *  *

分 时 日 月 周    命令

M: 分钟(0-59)。每分钟用 * 或者 */1 表示
H:小时(0-23)。(0表示0点)
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。
定时任务分为三部分定义:
任务时间
任务方法
任务日志
CRonJOBS = [
    # 每1分钟生成一次首页静态文件
    ('*/1 * * * *', 'apps.contents.crons.generate_static_index_html', '>> ' + os.path.join(base_DIR, 'logs/crontab.log'))
]
解决 crontab 中文问题
在定时任务中,如果出现非英文字符,会出现字符异常错误
CRONTAB_COMMAND_PREFIX = 'LANG_ALL=zh_cn.UTF-8'
4.管理定时任务

#添加定时任务到系统中
python manage.py crontab add

#显示已激活的定时任务
python manage.py crontab show

#移除定时任务
python manage.py crontab remove

5.异常

Python的Windows兼容问题——ModuleNotFoundError: No module named ‘fcntl’

原因
这个错误是因为Python缺少对应的fcntl模块,这个模块是Python自带的,但Windows好像没有。论坛上各种下载,其实代码很简单,直接手捏一个就行。

解决方案
新建fncl.py文件(用记事本也行),输入以下代码并保存至Python安装目录的Lib目录下

(如C:PythonPython36Lib)

def fcntl(fd, op, arg=0):
    return 0
 
def ioctl(fd, op, arg=0, mutable_flag=True):
    if mutable_flag:
        return 0
    else:
        return ""
 
def flock(fd, op):
    return
 
def lockf(fd, operation, length=0, start=0, whence=0):
    return

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4827792.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-10
下一篇 2022-11-10

发表评论

登录后才能评论

评论列表(0条)

保存