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

目录

    本文章要实现的是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 = '''调度类型 对应 参数(执行频率)  例:<br/>
                    	1、date:2019年8月30日 凌晨一点 执行任务<br/>参数值:2019-8-30 01:00:00 <br/>
                    	2、cron:每天 凌晨两点 执行任务 (秒 分 时 日 月 星期 年)<br/>参数值: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值