一个会定时完成的任务(二)

开发工具与关键技术:Visual Studio、MVC
作者:幻奏
撰写时间:2019.7.5

上次我大概说了一下定时任务是如何实现的,由于我只是大概的说了那个插件是如何使用的,它的其他方法我还没和你们细说,所以,我今天就再和你们分享一下。
我上次不是说了我们要把那个任务类放在那个构造函数的方法里面吗,其实我们可以直接把那个任务写进它那里面的,只不过要using那些需要的插件。
在这里插入图片描述
这个是直接写在MyRegistry里面的。
我接下来就要讲一下执行那个任务类的其他方法,这里我还是用上次那个演示的那个任务,就是那个往文件里输出当前的时间的任务。
在这里插入图片描述
我们只要在构造函数那个方法类里面执行这个方法就可以了。

① 立即执行计划任务,并根据指定时间间隔执行一次计划任务。(指定一个时间间隔运行,根据自己需求,可以是秒、分、时、天、月、年等。)

Schedule<TestJob>().ToRunNow().AndEvery(10).Seconds();

② 延迟一个指定时间间隔执行一次计划任务。(当然,这个间隔依然可以是秒、分、时、天、月、年等。)

 Schedule<TestJob>().ToRunOnceIn(10).Seconds();
 项目启动10秒后执行TestJob,然后每隔10秒钟执行一遍TestJob这个方法。

③ 在一个指定时间执行计划任务。

1、Schedule<TestJob>().ToRunEvery(1).Hours().At(10);
在每个小时的第十分钟执行。
2、Schedule<TestJob>().ToRunEvery(1).Days().At(3,00);
在每天的凌晨3点执行。
3、每n月的第一个星期的星期5 的15:0执行。
Schedule<TestJob>().ToRunEvery(1).Months().OnTheFirst(DayOfWeek.Friday).At(15, 0);
4、每n年的第几天的什么时候
Schedule<TestJob>().ToRunEvery(1).Years().On(5).At(12, 00);
每年的第五天的12点。

④ 可以同时执行多个定时任务。

Schedule<ClearJob>().AndThen<TestJob>().ToRunEvery(1).Months().OnTheFirst(DayOfWeek.Friday).At(15, 0);
每n月的第一个星期的星期5 的15:0执行  CleanJob和TestJob。

基本就这些了,如果还有其它的我会补上去,好了今天的分享就到这里了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
在 Django 中,你可以使用 Celery 库来实现定时任务系统。Celery一个 Python 分布式任务队列,它可以让你把任务放到异步队列中执行,还支持任务调度功能。下面是一个简单的定时任务系统的设计: 1. 安装 Celery 库 你可以使用 pip 安装 Celery 库: ``` pip install celery ``` 2. 配置 Celery 在 Django 的 settings.py 文件中,你需要添加以下配置: ```python # 配置 Celery CELERY_BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' CELERY_TIMEZONE = 'Asia/Shanghai' # 定义定时任务 CELERYBEAT_SCHEDULE = { 'task-name': { 'task': 'app.tasks.task_name', # 任务名称 'schedule': crontab(minute='*/10'), # 定时规则,这里表示每隔 10 分钟执行一次 }, } ``` 在上面的代码中,我们使用 Redis 作为 Celery 的消息代理和结果后端,同时设置 Celery 的时区为“Asia/Shanghai”。然后,我们定义了一个名为“task-name”的定时任务,它将执行在 app 应用中定义的名为“task_name”的任务。这个定时任务定时规则是每隔 10 分钟执行一次。 3. 编写任务函数 在 app 应用中,你需要编写定时任务函数,例如: ```python from celery import shared_task @shared_task def task_name(): # 在这里编写要执行的任务代码 print('This is a scheduled task') ``` 在上面的代码中,我们使用 `@shared_task` 装饰器将函数转换为 Celery 任务,然后在函数中编写要执行的任务代码。 4. 启动 Celery 你可以使用以下命令启动 Celery: ``` celery -A project_name worker -l info -B ``` 在上面的命令中,`project_name` 是你的 Django 项目名称,`-A` 参数指定 Celery 应用的名称,`worker` 参数表示启动 Celery 工作进程,`-l` 参数指定日志级别,`-B` 参数表示启动 Celery 定时任务调度器。 现在,你的定时任务系统已经可以运行了。Celery 按照你在 settings.py 文件中定义的定时规则,定时执行任务函数。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值