【Django+Apscheduler 开发定时任务模块】【二】

【Django+Apscheduler 开发定时任务模块】【二】,第1张

Django+Apscheduler 开发定时任务模块
  • 目录
    • 一、回顾
    • 二、安装Apscheduler
    • 三、编写存储定时任务的model
    • 四、展示

目录
    本文章要实现的是Django+Apscheduler 开发定时任务模块,并使用uwsgi+nginx模式部署,
    且能避免多进程下任务重复执行,且能够页面动态 *** 作任务;
一、回顾

上一节我们已经创建好了django项目,请前往查看
【Django+Apscheduler 开发定时任务模块】【一】

二、安装Apscheduler

1、安装Apscheduler很简单,只需一条命令:

	pip install apscheduler

2、使用Apscheduler,网上有详细介绍,官网也有,这里不多说:
官网
翻译版

三、编写存储定时任务的model

1、新建一个app,这里就简单的叫app

	python manage.py startapp app

2、在settings.py中添加app模块

	INSTALLED_APPS = [
    	'simpleui',
    	'django.contrib.admin',
    	'django.contrib.auth',
    	'django.contrib.contenttypes',
    	'django.contrib.sessions',
    	'django.contrib.messages',
    	'django.contrib.staticfiles',
    	'app.apps.AppConfig',        # 添加app模块
	]

3、在app文件夹下的models.py中添加名为job_list的model,直接上代码:

	
	class job_list(models.Model):
    	decpet = models.CharField('描述', max_length=255)
    	job_name = models.CharField('任务名称', max_length=25)
    	trigger_name = models.CharField('触发器', max_length=25)
    	type_choices = (('date', 'date'), ('cron', 'cron'))
    	type_content = '''调度类型 对应 参数(执行频率)  例:
1、date:2019年8月30日 凌晨一点 执行任务
参数值:2019-8-30 01:00:00
2、cron:每天 凌晨两点 执行任务 (秒 分 时 日 月 星期 年)
参数值:0 0 2 * * * *'''
action_type = models.CharField('调度类型', choices=type_choices, max_length=25, default='cron') gender_choices = ((0, '停止'), (1, '启动'),) job_state = models.IntegerField('任务状态', choices=gender_choices, default=0) job_rate = models.CharField('执行频率', help_text=type_content, max_length=50) time = models.IntegerField('执行次数', default=0) def __str__(self): return self.decpet class Meta: verbose_name_plural = '定时任务'

4、在app文件夹下的admin.py中注册JobListAdmin,看代码:

	@admin.register(job_list)
	class JOBLISTAdmin(admin.ModelAdmin):
    	list_display = ('id', 'job_name', 'decpet', 'trigger_name', 'job_state', 'action_type', 'job_rate')
    	list_display_links = ('id', 'job_name')
    	list_filter = ('job_state',)
    	list_editable = ('action_type', 'job_rate',)
    	list_per_page = 20
    	list_max_show_all = 7
    	ordering = ('-job_state', 'id',)
四、展示

ok,这一节就先到这里,我们已经创建好了定时任务模块,并且页面展示也已经完成;附上截图,里面会有下节要写的内容,也是最后一节


2022-04-17

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

原文地址: http://outofmemory.cn/langs/715607.html

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

发表评论

登录后才能评论

评论列表(0条)

保存